Skip to content

Commit c72424b

Browse files
kjbracey2gitster
authored andcommitted
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>
1 parent 83f0412 commit c72424b

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

t/t6019-rev-list-ancestry-path.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ test_description='--ancestry-path'
1616
#
1717
# F...I == F G H I
1818
# --ancestry-path F...I == F H I
19+
#
20+
# G..M -- G.t == [nothing - was dropped in "-s ours" merge L]
21+
# --ancestry-path G..M -- G.t == H J L
1922

2023
. ./test-lib.sh
2124

@@ -89,6 +92,22 @@ test_expect_success 'rev-list --ancestry-path F...I' '
8992
test_cmp expect actual
9093
'
9194

95+
# G.t is dropped in an "-s ours" merge
96+
test_expect_success 'rev-list G..M -- G.t' '
97+
>expect &&
98+
git rev-list --format=%s G..M -- G.t |
99+
sed -e "/^commit /d" >actual &&
100+
test_cmp expect actual
101+
'
102+
103+
test_expect_failure 'rev-list --ancestry-path G..M -- G.t' '
104+
for c in H J L; do echo $c; done >expect &&
105+
git rev-list --ancestry-path --format=%s G..M -- G.t |
106+
sed -e "/^commit /d" |
107+
sort >actual &&
108+
test_cmp expect actual
109+
'
110+
92111
# b---bc
93112
# / \ /
94113
# a X

0 commit comments

Comments
 (0)