git-show-branch: tighten merge-base computation.
authorJunio C Hamano <junkio@cox.net>
Thu, 10 Nov 2005 07:36:15 +0000 (23:36 -0800)
committerJunio C Hamano <junkio@cox.net>
Fri, 11 Nov 2005 18:52:38 +0000 (10:52 -0800)
This makes the merge-base computation resistant to the pathological
case discussed on the list earlier, by doing the same logic as
git-merge-base.  As a side effect, it breaks the command's primary
function to list non-merge commit sequences, which needs to be fixed
separately.

Signed-off-by: Junio C Hamano <junkio@cox.net>
show-branch.c

index 7012000..714e7f8 100644 (file)
@@ -181,11 +181,11 @@ static void join_revs(struct commit_list **list_p,
 
        while (*list_p) {
                struct commit_list *parents;
+               int still_interesting = !!interesting(*list_p);
                struct commit *commit = pop_one_commit(list_p);
                int flags = commit->object.flags & all_mask;
-               int still_interesting = !!interesting(*list_p);
 
-               if (!still_interesting && extra < 0)
+               if (!still_interesting && extra <= 0)
                        break;
 
                mark_seen(commit, seen_p);