1#!/bin/sh
2
3test_description='ask merge-recursive to merge binary files'
4
5GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
6export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
7
8. ./test-lib.sh
9
10test_expect_success setup '
11
12	cat "$TEST_DIRECTORY"/test-binary-1.png >m &&
13	git add m &&
14	git ls-files -s | sed -e "s/ 0	/ 1	/" >E1 &&
15	test_tick &&
16	git commit -m "initial" &&
17
18	git branch side &&
19	echo frotz >a &&
20	git add a &&
21	echo nitfol >>m &&
22	git add a m &&
23	git ls-files -s a >E0 &&
24	git ls-files -s m | sed -e "s/ 0	/ 3	/" >E3 &&
25	test_tick &&
26	git commit -m "main adds some" &&
27
28	git checkout side &&
29	echo rezrov >>m &&
30	git add m &&
31	git ls-files -s m | sed -e "s/ 0	/ 2	/" >E2 &&
32	test_tick &&
33	git commit -m "side modifies" &&
34
35	git tag anchor &&
36
37	cat E0 E1 E2 E3 >expect
38'
39
40test_expect_success resolve '
41
42	rm -f a* m* &&
43	git reset --hard anchor &&
44
45	if git merge -s resolve main
46	then
47		echo Oops, should not have succeeded
48		false
49	else
50		git ls-files -s >current
51		test_cmp expect current
52	fi
53'
54
55test_expect_success recursive '
56
57	rm -f a* m* &&
58	git reset --hard anchor &&
59
60	if git merge -s recursive main
61	then
62		echo Oops, should not have succeeded
63		false
64	else
65		git ls-files -s >current
66		test_cmp expect current
67	fi
68'
69
70test_done
71