summaryrefslogtreecommitdiff
path: root/t/t6407-merge-binary.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t6407-merge-binary.sh')
-rwxr-xr-xt/t6407-merge-binary.sh70
1 files changed, 70 insertions, 0 deletions
diff --git a/t/t6407-merge-binary.sh b/t/t6407-merge-binary.sh
new file mode 100755
index 0000000000..d4273f2575
--- /dev/null
+++ b/t/t6407-merge-binary.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+test_description='ask merge-recursive to merge binary files'
+
+GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
+export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+
+. ./test-lib.sh
+
+test_expect_success setup '
+
+ cat "$TEST_DIRECTORY"/test-binary-1.png >m &&
+ git add m &&
+ git ls-files -s | sed -e "s/ 0 / 1 /" >E1 &&
+ test_tick &&
+ git commit -m "initial" &&
+
+ git branch side &&
+ echo frotz >a &&
+ git add a &&
+ echo nitfol >>m &&
+ git add a m &&
+ git ls-files -s a >E0 &&
+ git ls-files -s m | sed -e "s/ 0 / 3 /" >E3 &&
+ test_tick &&
+ git commit -m "main adds some" &&
+
+ git checkout side &&
+ echo rezrov >>m &&
+ git add m &&
+ git ls-files -s m | sed -e "s/ 0 / 2 /" >E2 &&
+ test_tick &&
+ git commit -m "side modifies" &&
+
+ git tag anchor &&
+
+ cat E0 E1 E2 E3 >expect
+'
+
+test_expect_success resolve '
+
+ rm -f a* m* &&
+ git reset --hard anchor &&
+
+ if git merge -s resolve main
+ then
+ echo Oops, should not have succeeded
+ false
+ else
+ git ls-files -s >current
+ test_cmp expect current
+ fi
+'
+
+test_expect_success recursive '
+
+ rm -f a* m* &&
+ git reset --hard anchor &&
+
+ if git merge -s recursive main
+ then
+ echo Oops, should not have succeeded
+ false
+ else
+ git ls-files -s >current
+ test_cmp expect current
+ fi
+'
+
+test_done