aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbhishek Kumar <abhishekkumar8222@gmail.com>2021-01-16 18:11:09 +0000
committerJunio C Hamano <gitster@pobox.com>2021-01-18 16:21:18 -0800
commit2f9bbb6d91cfd72028cd930ab7e19d5d4903e58a (patch)
tree9746425a0ec24c86c84734dc14620c9193811965
parente30c5ee76cdd929efece1fc99302dce5b0aece0d (diff)
downloadgit-2f9bbb6d91cfd72028cd930ab7e19d5d4903e58a.tar.gz
revision: parse parent in indegree_walk_step()
In indegree_walk_step(), we add unvisited parents to the indegree queue. However, parents are not guaranteed to be parsed. As the indegree queue sorts by generation number, let's parse parents before inserting them to ensure the correct priority order. Signed-off-by: Abhishek Kumar <abhishekkumar8222@gmail.com> Reviewed-by: Taylor Blau <me@ttaylorr.com> Reviewed-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--revision.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/revision.c b/revision.c
index 9dff845bed..de8e45f462 100644
--- a/revision.c
+++ b/revision.c
@@ -3373,6 +3373,9 @@ static void indegree_walk_step(struct rev_info *revs)
struct commit *parent = p->item;
int *pi = indegree_slab_at(&info->indegree, parent);
+ if (repo_parse_commit_gently(revs->repo, parent, 1) < 0)
+ return;
+
if (*pi)
(*pi)++;
else