mirror of
https://github.com/git/git.git
synced 2025-04-14 06:02:31 +00:00
rev-list: Demonstrate breakage with --ancestry-path --all
The option added by commit ebdc94f3 (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>
This commit is contained in:
parent
cb7529e13b
commit
81f4953120
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user