Commit 50fdfe2bcbabc0a9d77966d9d18d035b61e950d3

Carlos Martín Nieto 2015-04-08T23:51:49

revwalk: don't insert uninteresting commits into the queue When a commit is first set as unintersting and then pushed, we must take care that we do not put it into the commit list as that makes us return at least that commit (but maybe more) as we've inserted it into the list because we have the assumption that we want anything in the commit list.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/revwalk.c b/src/revwalk.c
index a6d823e..9d0fafd 100644
--- a/src/revwalk.c
+++ b/src/revwalk.c
@@ -144,6 +144,10 @@ static int push_commit(git_revwalk *walk, const git_oid *oid, int uninteresting,
 	if (commit == NULL)
 		return -1; /* error already reported by failed lookup */
 
+	/* A previous hide already told us we don't want this commit  */
+	if (commit->uninteresting)
+		return 0;
+
 	if (uninteresting)
 		walk->did_hide = 1;
 	else