summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2009-08-10 22:17:01 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-08-10 22:17:01 -0700
commit14468ab45bae83ad300f17f41fe8fd555329ee5e (patch)
tree0f6bcb7b16ac48757a3add8054f38ebe50819b0d /t
parentMerge branch 'zf/maint-gitweb-acname' (diff)
parentmerge-recursive: don't segfault while handling rename clashes (diff)
downloadtgif-14468ab45bae83ad300f17f41fe8fd555329ee5e.tar.xz
Merge branch 'jc/maint-merge-recursive-fix'
* jc/maint-merge-recursive-fix: merge-recursive: don't segfault while handling rename clashes
Diffstat (limited to 't')
-rwxr-xr-xt/t6036-recursive-corner-cases.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/t/t6036-recursive-corner-cases.sh b/t/t6036-recursive-corner-cases.sh
new file mode 100755
index 0000000000..b874141658
--- /dev/null
+++ b/t/t6036-recursive-corner-cases.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+test_description='recursive merge corner cases'
+
+. ./test-lib.sh
+
+#
+# L1 L2
+# o---o
+# / \ / \
+# o X ?
+# \ / \ /
+# o---o
+# R1 R2
+#
+
+test_expect_success setup '
+ ten="0 1 2 3 4 5 6 7 8 9"
+ for i in $ten
+ do
+ echo line $i in a sample file
+ done >one &&
+ for i in $ten
+ do
+ echo line $i in another sample file
+ done >two &&
+ git add one two &&
+ test_tick && git commit -m initial &&
+
+ git branch L1 &&
+ git checkout -b R1 &&
+ git mv one three &&
+ test_tick && git commit -m R1 &&
+
+ git checkout L1 &&
+ git mv two three &&
+ test_tick && git commit -m L1 &&
+
+ git checkout L1^0 &&
+ test_tick && git merge -s ours R1 &&
+ git tag L2 &&
+
+ git checkout R1^0 &&
+ test_tick && git merge -s ours L1 &&
+ git tag R2
+'
+
+test_expect_success merge '
+ git reset --hard &&
+ git checkout L2^0 &&
+
+ test_must_fail git merge -s recursive R2^0
+'
+
+test_done