summaryrefslogtreecommitdiff
path: root/t/t6019-rev-list-ancestry-path.sh
diff options
context:
space:
mode:
authorKevin Bracey <kevin@bracey.fi>2013-05-16 18:32:28 +0300
committerJunio C Hamano <gitster@pobox.com>2013-05-16 11:51:08 -0700
commitc72424b1b5d511a346742dba62bec93a719ef1c8 (patch)
tree57027dc51ebd9fb7450f650c74b6ee583a1c7dcb /t/t6019-rev-list-ancestry-path.sh
parent83f0412f3fff3b4108e7f05c30f3e861d148f5f2 (diff)
downloadgit-c72424b1b5d511a346742dba62bec93a719ef1c8.tar.gz
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>
Diffstat (limited to 't/t6019-rev-list-ancestry-path.sh')
-rwxr-xr-xt/t6019-rev-list-ancestry-path.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/t/t6019-rev-list-ancestry-path.sh b/t/t6019-rev-list-ancestry-path.sh
index dd5b0e55d2..c3bc2e73ef 100755
--- a/t/t6019-rev-list-ancestry-path.sh
+++ b/t/t6019-rev-list-ancestry-path.sh
@@ -16,6 +16,9 @@ test_description='--ancestry-path'
#
# F...I == F G 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
@@ -89,6 +92,22 @@ test_expect_success 'rev-list --ancestry-path F...I' '
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
# / \ /
# a X