]>
Commit | Line | Data |
---|---|---|
8cc5b290 AP |
1 | #!/bin/sh |
2 | ||
3 | test_description='Merge-recursive ours and theirs variants' | |
4 | . ./test-lib.sh | |
5 | ||
6 | test_expect_success setup ' | |
7 | for i in 1 2 3 4 5 6 7 8 9 | |
8 | do | |
9 | echo "$i" | |
10 | done >file && | |
11 | git add file && | |
12 | cp file elif && | |
13 | git commit -m initial && | |
14 | ||
15 | sed -e "s/1/one/" -e "s/9/nine/" >file <elif && | |
16 | git commit -a -m ours && | |
17 | ||
18 | git checkout -b side HEAD^ && | |
19 | ||
20 | sed -e "s/9/nueve/" >file <elif && | |
21 | git commit -a -m theirs && | |
22 | ||
23 | git checkout master^0 | |
24 | ' | |
25 | ||
26 | test_expect_success 'plain recursive - should conflict' ' | |
27 | git reset --hard master && | |
28 | test_must_fail git merge -s recursive side && | |
29 | grep nine file && | |
30 | grep nueve file && | |
31 | ! grep 9 file && | |
32 | grep one file && | |
33 | ! grep 1 file | |
34 | ' | |
35 | ||
36 | test_expect_success 'recursive favouring theirs' ' | |
37 | git reset --hard master && | |
38 | git merge -s recursive -Xtheirs side && | |
39 | ! grep nine file && | |
40 | grep nueve file && | |
41 | ! grep 9 file && | |
42 | grep one file && | |
43 | ! grep 1 file | |
44 | ' | |
45 | ||
46 | test_expect_success 'recursive favouring ours' ' | |
47 | git reset --hard master && | |
48 | git merge -s recursive -X ours side && | |
49 | grep nine file && | |
50 | ! grep nueve file && | |
51 | ! grep 9 file && | |
52 | grep one file && | |
53 | ! grep 1 file | |
54 | ' | |
55 | ||
a944af1d | 56 | test_expect_success 'binary file with -Xours/-Xtheirs' ' |
155a4b71 | 57 | echo file binary >.gitattributes && |
a944af1d JH |
58 | |
59 | git reset --hard master && | |
60 | git merge -s recursive -X theirs side && | |
61 | git diff --exit-code side HEAD -- file && | |
62 | ||
63 | git reset --hard master && | |
64 | git merge -s recursive -X ours side && | |
65 | git diff --exit-code master HEAD -- file | |
66 | ' | |
67 | ||
68 | test_expect_success 'pull passes -X to underlying merge' ' | |
ee2c7955 AP |
69 | git reset --hard master && git pull -s recursive -Xours . side && |
70 | git reset --hard master && git pull -s recursive -X ours . side && | |
71 | git reset --hard master && git pull -s recursive -Xtheirs . side && | |
72 | git reset --hard master && git pull -s recursive -X theirs . side && | |
ce14e0b2 | 73 | git reset --hard master && test_must_fail git pull -s recursive -X bork . side |
ee2c7955 AP |
74 | ' |
75 | ||
8cc5b290 | 76 | test_done |