Merge branch 'js/range-diff-wo-dotdot'
[git] / t / t6407-merge-binary.sh
1 #!/bin/sh
2
3 test_description='ask merge-recursive to merge binary files'
4
5 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
6 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
7
8 . ./test-lib.sh
9
10 test_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
40 test_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
55 test_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
70 test_done