summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: cb7529e)
raw | patch | inline | side by side (parent: cb7529e)
author | Brad King <brad.king@kitware.com> | |
Thu, 25 Aug 2011 16:49:13 +0000 (12:49 -0400) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Thu, 25 Aug 2011 23:40:48 +0000 (16:40 -0700) |
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>
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>
t/t6019-rev-list-ancestry-path.sh | patch | blob | history |
index 76410293b34ecede219445e09b1eccb8175ee115..aa4674f1df3793b4e5521e2a2b9a7d6e7d414896 100755 (executable)
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