[RFC PATCH 04/12] commit-graph: parse commit from chosen graph
- From
Derrick Stolee <dstolee@microsoft.com>
- Date
- Apr 17, 2018, 18:10 UTC
- Message-ID
- <20180417181028.198397-5-dstolee@microsoft.com>
- In-Reply-To
- <20180417181028.198397-1-dstolee@microsoft.com>
Before checking a commit-graph file against the object database, we need to parse all commits from the given commit-graph file. Create parse_commit_in_graph_one() to target a given struct commit_graph.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com> --- commit-graph.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/commit-graph.c b/commit-graph.c index c5e5a0f860..6d0d303a7a 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -308,17 +308,27 @@ static int find_commit_in_graph(struct commit *item, struct commit_graph *g, uin } } -int parse_commit_in_graph(struct commit *item) +int parse_commit_in_graph_one(struct commit_graph *g, struct commit *item) { uint32_t pos; if (item->object.parsed) - return 0; + return 1; + + if (find_commit_in_graph(item, g, &pos)) + return fill_commit_in_graph(item, g, pos); + + return 0; +} + +int parse_commit_in_graph(struct commit *item) +{ if (!core_commit_graph) return 0; + prepare_commit_graph(); - if (commit_graph && find_commit_in_graph(item, commit_graph, &pos)) - return fill_commit_in_graph(item, commit_graph, pos); + if (commit_graph) + return parse_commit_in_graph_one(commit_graph, item); return 0; }
-- 2.17.0.39.g685157f7fb