aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-08-21 11:34:24 -0700
committerJunio C Hamano <gitster@pobox.com>2009-08-21 11:34:24 -0700
commit3a2dd481e51ed3ea01b84c7db4c661a0a3d5279c (patch)
tree91ce5e5495f5d022bebd77ea41bd51970e8ec3db /t
parentd3ebb174ea0881ff1d801174d18271bfc50245e3 (diff)
parentc94736a27f89bfc268aed0de7264deecdc136a58 (diff)
downloadgit-3a2dd481e51ed3ea01b84c7db4c661a0a3d5279c.tar.gz
git-3a2dd481e51ed3ea01b84c7db4c661a0a3d5279c.tar.xz
Merge branch 'jc/maint-merge-recursive-fix' into maint
* 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 000000000..b87414165
--- /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