summaryrefslogtreecommitdiffstats
path: root/t/t6407-merge-binary.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xt/t6407-merge-binary.sh61
1 files changed, 61 insertions, 0 deletions
diff --git a/t/t6407-merge-binary.sh b/t/t6407-merge-binary.sh
new file mode 100755
index 0000000..0753fc9
--- /dev/null
+++ b/t/t6407-merge-binary.sh
@@ -0,0 +1,61 @@
+#!/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_PASSES_SANITIZE_LEAK=true
+. ./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 &&
+
+ test_must_fail git merge -s resolve main &&
+ git ls-files -s >current &&
+ test_cmp expect current
+'
+
+test_expect_success recursive '
+
+ rm -f a* m* &&
+ git reset --hard anchor &&
+
+ test_must_fail git merge -s recursive main &&
+ git ls-files -s >current &&
+ test_cmp expect current
+'
+
+test_done