Skip to content

Commit

Permalink
rev-list: Demonstrate breakage with --ancestry-path --all
Browse files Browse the repository at this point in the history
The option added by commit ebdc94f (revision: --ancestry-path,
2010-04-20) does not work properly in combination with --all, at least
in the case of a criss-cross merge:

    b---bc
   / \ /
  a   X
   \ / \
    c---cb

There are no descendants of 'cb' in the history.  The command

  git rev-list --ancestry-path cb..bc

correctly reports no commits.  However, the command

  git rev-list --ancestry-path --all ^cb

reports 'bc'.  Add a test case to t6019-rev-list-ancestry-path
demonstrating this breakage.

Signed-off-by: Brad King <brad.king@kitware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Brad King authored and Junio C Hamano committed Aug 25, 2011
1 parent cb7529e commit 81f4953
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions t/t6019-rev-list-ancestry-path.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,39 @@ test_expect_success 'rev-list --ancestry-patch D..M -- M.t' '
test_cmp expect actual
'

# b---bc
# / \ /
# a X
# \ / \
# c---cb
test_expect_success 'setup criss-cross' '
mkdir criss-cross &&
(cd criss-cross &&
git init &&
test_commit A &&
git checkout -b b master &&
test_commit B &&
git checkout -b c master &&
test_commit C &&
git checkout -b bc b -- &&
git merge c &&
git checkout -b cb c -- &&
git merge b &&
git checkout master)
'

# no commits in bc descend from cb
test_expect_success 'criss-cross: rev-list --ancestry-path cb..bc' '
(cd criss-cross &&
git rev-list --ancestry-path cb..bc > actual &&
test -z "$(cat actual)")
'

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

test_done

0 comments on commit 81f4953

Please sign in to comment.