Code

fetch-pack: do not stop traversing an already parsed commit
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Apr 2008 23:27:49 +0000 (16:27 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 28 Apr 2008 23:27:49 +0000 (16:27 -0700)
f3ec549 (fetch-pack: check parse_commit/object results, 2008-03-03)
broke common ancestor computation by stopping traversal when it sees
an already parsed commit.  This should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-fetch-pack.c

index 65350ca52240bad95c1632ae604d66279d9a8997..fe8cfa0cb899d0db2f572e4fcf859dea9e895197 100644 (file)
@@ -117,15 +117,15 @@ static const unsigned char* get_rev(void)
 
        while (commit == NULL) {
                unsigned int mark;
-               struct commit_list *parents = NULL;
+               struct commit_list *parents;
 
                if (rev_list == NULL || non_common_revs == 0)
                        return NULL;
 
                commit = rev_list->item;
-               if (!(commit->object.parsed))
-                       if (!parse_commit(commit))
-                               parents = commit->parents;
+               if (commit->object.parsed)
+                       parse_commit(commit);
+               parents = commit->parents;
 
                commit->object.flags |= POPPED;
                if (!(commit->object.flags & COMMON))