Skip to content

Commit

Permalink
revision: do not include sibling history in --ancestry-path output
Browse files Browse the repository at this point in the history
If the commit specified as the bottom of the commit range has a direct
parent that has another child commit that contributed to the resulting
history, "rev-list --ancestry-path" was confused and listed that side
history as well, due to the command line parser subtlety corrected by the
previous commit.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Aug 26, 2011
1 parent 281eee4 commit c3502fa
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
16 changes: 10 additions & 6 deletions revision.c
Original file line number Diff line number Diff line change
Expand Up @@ -724,12 +724,16 @@ static void limit_to_ancestry(struct commit_list *bottom, struct commit_list *li
* to filter the result of "A..B" further to the ones that can actually
* reach A.
*/
static struct commit_list *collect_bottom_commits(struct commit_list *list)
static struct commit_list *collect_bottom_commits(struct rev_info *revs)
{
struct commit_list *elem, *bottom = NULL;
for (elem = list; elem; elem = elem->next)
if (elem->item->object.flags & UNINTERESTING)
commit_list_insert(elem->item, &bottom);
struct commit_list *bottom = NULL;
int i;
for (i = 0; i < revs->cmdline.nr; i++) {
struct rev_cmdline_entry *elem = &revs->cmdline.rev[i];
if ((elem->flags & UNINTERESTING) &&
elem->item->type == OBJ_COMMIT)
commit_list_insert((struct commit *)elem->item, &bottom);
}
return bottom;
}

Expand All @@ -743,7 +747,7 @@ static int limit_list(struct rev_info *revs)
struct commit_list *bottom = NULL;

if (revs->ancestry_path) {
bottom = collect_bottom_commits(list);
bottom = collect_bottom_commits(revs);
if (!bottom)
die("--ancestry-path given but there are no bottom commits");
}
Expand Down
2 changes: 1 addition & 1 deletion t/t6019-rev-list-ancestry-path.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ test_expect_success 'criss-cross: rev-list --ancestry-path cb..bc' '
'

# no commits in repository descend from cb
test_expect_failure 'criss-cross: rev-list --ancestry-path --all ^cb' '
test_expect_success 'criss-cross: rev-list --ancestry-path --all ^cb' '
(cd criss-cross &&
git rev-list --ancestry-path --all ^cb > actual &&
test -z "$(cat actual)")
Expand Down

0 comments on commit c3502fa

Please sign in to comment.