t6019: test file dropped in -s ours merge

In preparation for upcoming TREESAME work, check the result for G.t,
which is dropped in "-s ours" merge L. The default rev-list is empty, as
expected - it follows the first parent path where it never existed.

Unfortunately, --ancestry-path is also empty. Merges H J and L are all
TREESAME to 1 parent, so are treated as TREESAME and not shown. This is
clearly undesirable in the case of merge L, which dropped our G.t by
taking the non-ancestry-path version. Document this as a known failure,
and expect "H J L", the 3 merges along the path that had to chose G.t
versions.

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Kevin Bracey 2013-05-16 18:32:28 +03:00 committed by Junio C Hamano
parent 83f0412f3f
commit c72424b1b5

View File

@ -16,6 +16,9 @@ test_description='--ancestry-path'
# #
# F...I == F G H I # F...I == F G H I
# --ancestry-path F...I == F H I # --ancestry-path F...I == F H I
#
# G..M -- G.t == [nothing - was dropped in "-s ours" merge L]
# --ancestry-path G..M -- G.t == H J L
. ./test-lib.sh . ./test-lib.sh
@ -89,6 +92,22 @@ test_expect_success 'rev-list --ancestry-path F...I' '
test_cmp expect actual test_cmp expect actual
' '
# G.t is dropped in an "-s ours" merge
test_expect_success 'rev-list G..M -- G.t' '
>expect &&
git rev-list --format=%s G..M -- G.t |
sed -e "/^commit /d" >actual &&
test_cmp expect actual
'
test_expect_failure 'rev-list --ancestry-path G..M -- G.t' '
for c in H J L; do echo $c; done >expect &&
git rev-list --ancestry-path --format=%s G..M -- G.t |
sed -e "/^commit /d" |
sort >actual &&
test_cmp expect actual
'
# b---bc # b---bc
# / \ / # / \ /
# a X # a X