Commit 702ac40897050b686814463c7ee25f48390bd796

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 adc7699..83c2ff8 100644
--- a/src/revwalk.c
+++ b/src/revwalk.c
@@ -162,6 +162,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