From: Derrick Stolee Date: Tue, 10 Jul 2018 00:23:08 GMT Subject: Re: [PATCH v2 1/6] commit-graph: refactor preparing commit graph Message-ID: <45e838b8-7741-bc6a-f0e5-d7604639a006@gmail.com> In-Reply-To: On 7/9/2018 5:41 PM, Stefan Beller wrote: > Hi Jonathan, > On Mon, Jul 9, 2018 at 1:44 PM Jonathan Tan wrote: >> Two functions in the code (1) check if the repository is configured for >> commit graphs, (2) call prepare_commit_graph(), and (3) check if the >> graph exists. Move (1) and (3) into prepare_commit_graph(), reducing >> duplication of code. >> >> Signed-off-by: Jonathan Tan > > >> static int prepare_commit_graph_run_once = 0; >> -static void prepare_commit_graph(void) >> + >> +/* >> + * Return 1 if commit_graph is non-NULL, and 0 otherwise. >> + * >> + * On the first invocation, this function attemps to load the commit >> + * graph if the_repository is configured to have one. > and as we talk about in-memory commit graph (and not some > stale file that may still be around on the fs), we can assertly return > 0 when core_commit_graph is false. > > Makes sense! > >> @@ -337,22 +348,17 @@ static int parse_commit_in_graph_one(struct commit_graph *g, struct commit *item >> >> int parse_commit_in_graph(struct commit *item) >> { >> - if (!core_commit_graph) >> + if (!prepare_commit_graph()) >> return 0; >> - >> - prepare_commit_graph(); >> - if (commit_graph) >> - return parse_commit_in_graph_one(commit_graph, item); >> - return 0; >> + return parse_commit_in_graph_one(commit_graph, item); > Makes sense. > >> } >> >> void load_commit_graph_info(struct commit *item) >> { >> uint32_t pos; >> - if (!core_commit_graph) >> + if (!prepare_commit_graph()) >> return; >> - prepare_commit_graph(); >> - if (commit_graph && find_commit_in_graph(item, commit_graph, &pos)) >> + if (find_commit_in_graph(item, commit_graph, &pos)) >> fill_commit_graph_info(item, commit_graph, pos); > here too, > > This is > Reviewed-by: Stefan Beller These changes make sense. Thanks!