@@ -14,85 +14,90 @@ test_description='Test merge without common ancestors'
1414GIT_COMMITTER_DATE=" 2006-12-12 23:28:00 +0100"
1515export GIT_COMMITTER_DATE
1616
17- test_expect_success " setup tests" '
18- echo 1 > a1 &&
19- git add a1 &&
20- GIT_AUTHOR_DATE="2006-12-12 23:00:00" git commit -m 1 a1 &&
21-
22- git checkout -b A master &&
23- echo A > a1 &&
24- GIT_AUTHOR_DATE="2006-12-12 23:00:01" git commit -m A a1 &&
25-
26- git checkout -b B master &&
27- echo B > a1 &&
28- GIT_AUTHOR_DATE="2006-12-12 23:00:02" git commit -m B a1 &&
29-
30- git checkout -b D A &&
31- git rev-parse B > .git/MERGE_HEAD &&
32- echo D > a1 &&
33- git update-index a1 &&
34- GIT_AUTHOR_DATE="2006-12-12 23:00:03" git commit -m D &&
35-
36- git symbolic-ref HEAD refs/heads/other &&
37- echo 2 > a1 &&
38- GIT_AUTHOR_DATE="2006-12-12 23:00:04" git commit -m 2 a1 &&
39-
40- git checkout -b C &&
41- echo C > a1 &&
42- GIT_AUTHOR_DATE="2006-12-12 23:00:05" git commit -m C a1 &&
43-
44- git checkout -b E C &&
45- git rev-parse B > .git/MERGE_HEAD &&
46- echo E > a1 &&
47- git update-index a1 &&
48- GIT_AUTHOR_DATE="2006-12-12 23:00:06" git commit -m E &&
49-
50- git checkout -b G E &&
51- git rev-parse A > .git/MERGE_HEAD &&
52- echo G > a1 &&
53- git update-index a1 &&
54- GIT_AUTHOR_DATE="2006-12-12 23:00:07" git commit -m G &&
55-
56- git checkout -b F D &&
57- git rev-parse C > .git/MERGE_HEAD &&
58- echo F > a1 &&
59- git update-index a1 &&
60- GIT_AUTHOR_DATE="2006-12-12 23:00:08" git commit -m F
17+ test_expect_success ' setup tests' '
18+ echo 1 >a1 &&
19+ git add a1 &&
20+ GIT_AUTHOR_DATE="2006-12-12 23:00:00" git commit -m 1 a1 &&
21+
22+ git checkout -b A master &&
23+ echo A >a1 &&
24+ GIT_AUTHOR_DATE="2006-12-12 23:00:01" git commit -m A a1 &&
25+
26+ git checkout -b B master &&
27+ echo B >a1 &&
28+ GIT_AUTHOR_DATE="2006-12-12 23:00:02" git commit -m B a1 &&
29+
30+ git checkout -b D A &&
31+ git rev-parse B >.git/MERGE_HEAD &&
32+ echo D >a1 &&
33+ git update-index a1 &&
34+ GIT_AUTHOR_DATE="2006-12-12 23:00:03" git commit -m D &&
35+
36+ git symbolic-ref HEAD refs/heads/other &&
37+ echo 2 >a1 &&
38+ GIT_AUTHOR_DATE="2006-12-12 23:00:04" git commit -m 2 a1 &&
39+
40+ git checkout -b C &&
41+ echo C >a1 &&
42+ GIT_AUTHOR_DATE="2006-12-12 23:00:05" git commit -m C a1 &&
43+
44+ git checkout -b E C &&
45+ git rev-parse B >.git/MERGE_HEAD &&
46+ echo E >a1 &&
47+ git update-index a1 &&
48+ GIT_AUTHOR_DATE="2006-12-12 23:00:06" git commit -m E &&
49+
50+ git checkout -b G E &&
51+ git rev-parse A >.git/MERGE_HEAD &&
52+ echo G >a1 &&
53+ git update-index a1 &&
54+ GIT_AUTHOR_DATE="2006-12-12 23:00:07" git commit -m G &&
55+
56+ git checkout -b F D &&
57+ git rev-parse C >.git/MERGE_HEAD &&
58+ echo F >a1 &&
59+ git update-index a1 &&
60+ GIT_AUTHOR_DATE="2006-12-12 23:00:08" git commit -m F
6161'
6262
6363test_expect_success ' combined merge conflicts' '
6464 test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git merge -m final G
6565'
6666
67- cat > expect << EOF
68- <<<<<<< HEAD
69- F
70- =======
71- G
72- >>>>>>> G
73- EOF
67+ test_expect_success ' result contains a conflict' '
68+ cat >expect <<-\EOF &&
69+ <<<<<<< HEAD
70+ F
71+ =======
72+ G
73+ >>>>>>> G
74+ EOF
7475
75- test_expect_success " result contains a conflict" " test_cmp expect a1"
76+ test_cmp expect a1
77+ '
78+
79+ test_expect_success ' virtual trees were processed' '
80+ git ls-files --stage >out &&
7681
77- git ls-files --stage > out
78- cat > expect << EOF
79- 100644 ec3fe2a791706733f2d8fa7ad45d9a9672031f5e 1 a1
80- 100644 cf84443e49e1b366fac938711ddf4be2d4d1d9e9 2 a1
81- 100644 fd7923529855d0b274795ae3349c5e0438333979 3 a1
82- EOF
82+ cat >expect <<-\EOF &&
83+ 100644 ec3fe2a791706733f2d8fa7ad45d9a9672031f5e 1 a1
84+ 100644 cf84443e49e1b366fac938711ddf4be2d4d1d9e9 2 a1
85+ 100644 fd7923529855d0b274795ae3349c5e0438333979 3 a1
86+ EOF
8387
84- test_expect_success " virtual trees were processed" " test_cmp expect out"
88+ test_cmp expect out
89+ '
8590
8691test_expect_success ' refuse to merge binary files' '
8792 git reset --hard &&
88- printf "\0" > binary-file &&
93+ printf "\0" >binary-file &&
8994 git add binary-file &&
9095 git commit -m binary &&
9196 git checkout G &&
92- printf "\0\0" > binary-file &&
97+ printf "\0\0" >binary-file &&
9398 git add binary-file &&
9499 git commit -m binary2 &&
95- test_must_fail git merge F > merge.out 2> merge.err &&
100+ test_must_fail git merge F >merge.out 2>merge.err &&
96101 grep "Cannot merge binary files: binary-file (HEAD vs. F)" merge.err
97102'
98103
@@ -116,7 +121,6 @@ test_expect_success 'mark rename/delete as unmerged' '
116121 test 1 = $(git ls-files --unmerged | wc -l) &&
117122 test_must_fail git rev-parse --verify :2:a2 &&
118123 git rev-parse --verify :3:a2
119-
120124'
121125
122126test_done
0 commit comments