From: Jonathan Tan <jonathantanmy@google.com>
To: stolee@gmail.com
Cc: jonathantanmy@google.com, git@vger.kernel.org
Subject: Re: [PATCH v2 6/6] commit-graph: add repo arg to graph readers
Date: Tue, 10 Jul 2018 10:31:47 -0700 [thread overview]
Message-ID: <20180710173147.104757-1-jonathantanmy@google.com> (raw)
In-Reply-To: <75ef9935-342a-bbda-4ce6-e5a033f273a9@gmail.com>
> > - if (!core_commit_graph)
> > + if (repo_config_get_bool(r, "core.commitgraph", &config_value) ||
> > + !config_value)
> > + /*
> > + * This repository is not configured to use commit graphs, so
> > + * do not load one. (But report commit_graph_attempted anyway
> > + * so that commit graph loading is not attempted again for this
> > + * repository.)
> > + */
>
> I reacted first to complain about this extra config lookup, but it is
> only run once per repository, so that should be fine.
Thanks for checking. It is indeed run at most once per repository, and
only if a commit graph is requested - the same as the current code.
> The tests below form a decently-large patch on their own. Perhaps split
> them out so it is easier to know that we have some interesting things to
> check here.
The patch is 168+ 42-, which doesn't seem that large to me, but I'll do
this if others think that it is large too.
> It's worth spending some extra time looking at this test pattern as I
> believe we will want to follow it with other arbitrary repository changes.
I agree - let me know if you notice anything you think should be
changed.
> > +static void test_get_commit_tree_in_graph(const char *gitdir,
> > + const char *worktree,
> > + const struct object_id *commit_oid)
> > +{
> > + struct repository r;
> > + struct commit *c;
> > + struct tree *tree;
> > +
> > + /*
> > + * Create a commit independent of any repository.
> > + */
> > + c = lookup_commit(commit_oid);
>
> Would this be more accurate to say we are creating a commit object
> stored in the object cache of the_repository? How would you expect this
> to work if/when lookup_commit() takes an arbitrary repository? You want
> to provide &r, right (after initializing)?
Yes, you're right - Stefan too mentioned that this will need to be moved
below lookup_commit(). I'm not sure what the best way is to handle this
- maybe move this, and add a "needswork" stating that we need to pass r
to lookup_commit once it supports taking in a repository argument, as an
aid to the person who performs the merge. I'll do that if a reroll is
needed.
> Also, this will conflict with sb/object-store-lookup, won't it? I'm
> guessing this is why you didn't touch the "git commit-graph
> [write|verify]"code paths.
It will conflict because of the change to lookup_commit(), but the only
new code I'm writing is in t/helper/test-repository.c, so hopefully the
merge won't be too tedious. The main reason why I didn't touch the
writing/verifying part is to reduce the size of this patch set, and
because that change is not needed to update parse_commit() and others.
> > +
> > + repo_init(&r, gitdir, worktree);
>
> I think you want to move the lookup_commit() to after this.
Yes, that's right.
> > +int cmd__repository(int argc, const char **argv)
> > +{
> > + if (argc < 2)
> > + die("must have at least 2 arguments");
>
> I think this "test-tool repository <verb>" pattern is a good way to get
> some testing here.
Thanks.
next prev parent reply other threads:[~2018-07-10 18:41 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-21 21:29 [PATCH 0/5] Object store refactoring: commit graph Jonathan Tan
2018-06-21 21:29 ` [PATCH 1/5] object-store: add missing include Jonathan Tan
2018-06-21 21:29 ` [PATCH 2/5] commit-graph: add missing forward declaration Jonathan Tan
2018-06-21 21:43 ` Stefan Beller
2018-06-21 22:39 ` Jonathan Tan
2018-06-22 0:17 ` Derrick Stolee
2018-06-21 21:29 ` [PATCH 3/5] commit-graph: add free_commit_graph Jonathan Tan
2018-06-21 21:29 ` [PATCH 4/5] commit-graph: store graph in struct object_store Jonathan Tan
2018-06-25 20:57 ` Junio C Hamano
2018-06-25 22:09 ` Jonathan Tan
2018-06-26 16:40 ` Junio C Hamano
2018-06-21 21:29 ` [PATCH 5/5] commit-graph: add repo arg to graph readers Jonathan Tan
2018-06-21 22:41 ` Stefan Beller
2018-06-21 23:06 ` Jonathan Tan
2018-06-22 0:33 ` Derrick Stolee
2018-06-22 1:01 ` Derrick Stolee
2018-06-22 17:21 ` Jonathan Tan
2018-07-09 20:44 ` [PATCH v2 on ds/commit-graph-fsck 0/6] Object store refactoring: commit graph Jonathan Tan
2018-07-09 20:44 ` [PATCH v2 1/6] commit-graph: refactor preparing " Jonathan Tan
2018-07-09 21:41 ` Stefan Beller
2018-07-10 0:23 ` Derrick Stolee
2018-07-09 20:44 ` [PATCH v2 2/6] object-store: add missing include Jonathan Tan
2018-07-09 20:44 ` [PATCH v2 3/6] commit-graph: add missing forward declaration Jonathan Tan
2018-07-09 20:44 ` [PATCH v2 4/6] commit-graph: add free_commit_graph Jonathan Tan
2018-07-09 20:44 ` [PATCH v2 5/6] commit-graph: store graph in struct object_store Jonathan Tan
2018-07-09 20:44 ` [PATCH v2 6/6] commit-graph: add repo arg to graph readers Jonathan Tan
2018-07-10 0:48 ` Derrick Stolee
2018-07-10 17:31 ` Jonathan Tan [this message]
2018-07-11 19:41 ` Derrick Stolee
2018-07-11 21:08 ` Jonathan Tan
2018-07-10 11:53 ` SZEDER Gábor
2018-07-10 13:18 ` Johannes Schindelin
2018-07-10 17:23 ` Jonathan Tan
2018-07-09 21:47 ` [PATCH v2 on ds/commit-graph-fsck 0/6] Object store refactoring: commit graph Stefan Beller
2018-07-09 22:27 ` Junio C Hamano
2018-07-10 0:30 ` Derrick Stolee
2018-07-10 0:32 ` Derrick Stolee
2018-07-11 22:42 ` [PATCH v3 " Jonathan Tan
2018-07-11 22:42 ` [PATCH v3 1/6] commit-graph: refactor preparing " Jonathan Tan
2018-07-11 22:42 ` [PATCH v3 2/6] object-store: add missing include Jonathan Tan
2018-07-11 22:42 ` [PATCH v3 3/6] commit-graph: add missing forward declaration Jonathan Tan
2018-07-11 22:42 ` [PATCH v3 4/6] commit-graph: add free_commit_graph Jonathan Tan
2018-07-11 22:42 ` [PATCH v3 5/6] commit-graph: store graph in struct object_store Jonathan Tan
2018-07-11 22:42 ` [PATCH v3 6/6] commit-graph: add repo arg to graph readers Jonathan Tan
2018-08-13 0:30 ` [PATCH] t5318: avoid unnecessary command substitutions SZEDER Gábor
2018-08-13 11:23 ` Derrick Stolee
2018-08-13 19:05 ` Junio C Hamano
2018-07-12 16:56 ` [PATCH v3 0/6] Object store refactoring: commit graph Junio C Hamano
2018-07-12 17:43 ` Derrick Stolee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180710173147.104757-1-jonathantanmy@google.com \
--to=jonathantanmy@google.com \
--cc=git@vger.kernel.org \
--cc=stolee@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).