]>
Commit | Line | Data |
---|---|---|
4e5dd044 JF |
1 | #!/bin/sh |
2 | ||
3 | test_description='merge-recursive options | |
4 | ||
5 | * [master] Clarify | |
6 | ! [remote] Remove cruft | |
7 | -- | |
8 | + [remote] Remove cruft | |
9 | * [master] Clarify | |
10 | *+ [remote^] Initial revision | |
11 | * ok 1: setup | |
12 | ' | |
13 | ||
14 | . ./test-lib.sh | |
15 | ||
16 | test_expect_success 'setup' ' | |
17 | conflict_hunks () { | |
18 | sed -n -e " | |
19 | /^<<<</ b inconflict | |
20 | b | |
21 | : inconflict | |
22 | p | |
23 | /^>>>>/ b | |
24 | n | |
25 | b inconflict | |
26 | " "$@" | |
27 | } && | |
28 | ||
29 | cat <<-\EOF >text.txt && | |
30 | Hope, he says, cherishes the soul of him who lives in | |
31 | justice and holiness and is the nurse of his age and the | |
32 | companion of his journey;--hope which is mightiest to sway | |
33 | the restless soul of man. | |
34 | ||
35 | How admirable are his words! And the great blessing of riches, I do | |
36 | not say to every man, but to a good man, is, that he has had no | |
37 | occasion to deceive or to defraud others, either intentionally or | |
38 | unintentionally; and when he departs to the world below he is not in | |
39 | any apprehension about offerings due to the gods or debts which he owes | |
40 | to men. Now to this peace of mind the possession of wealth greatly | |
41 | contributes; and therefore I say, that, setting one thing against | |
42 | another, of the many advantages which wealth has to give, to a man of | |
43 | sense this is in my opinion the greatest. | |
44 | ||
45 | Well said, Cephalus, I replied; but as concerning justice, what is | |
46 | it?--to speak the truth and to pay your debts--no more than this? And | |
47 | even to this are there not exceptions? Suppose that a friend when in | |
48 | his right mind has deposited arms with me and he asks for them when he | |
49 | is not in his right mind, ought I to give them back to him? No one | |
50 | would say that I ought or that I should be right in doing so, any more | |
51 | than they would say that I ought always to speak the truth to one who | |
52 | is in his condition. | |
53 | ||
54 | You are quite right, he replied. | |
55 | ||
56 | But then, I said, speaking the truth and paying your debts is not a | |
57 | correct definition of justice. | |
58 | ||
59 | CEPHALUS - SOCRATES - POLEMARCHUS | |
60 | ||
61 | Quite correct, Socrates, if Simonides is to be believed, said | |
62 | Polemarchus interposing. | |
63 | ||
64 | I fear, said Cephalus, that I must go now, for I have to look after the | |
65 | sacrifices, and I hand over the argument to Polemarchus and the company. | |
66 | EOF | |
67 | git add text.txt && | |
68 | test_tick && | |
69 | git commit -m "Initial revision" && | |
70 | ||
71 | git checkout -b remote && | |
72 | sed -e " | |
73 | s/\. /\. /g | |
74 | s/[?] /? /g | |
75 | s/ / /g | |
76 | s/--/---/g | |
77 | s/but as concerning/but as con cerning/ | |
78 | /CEPHALUS - SOCRATES - POLEMARCHUS/ d | |
79 | " text.txt >text.txt+ && | |
80 | mv text.txt+ text.txt && | |
81 | git commit -a -m "Remove cruft" && | |
82 | ||
83 | git checkout master && | |
84 | sed -e " | |
85 | s/\(not in his right mind\),\(.*\)/\1;\2Q/ | |
86 | s/Quite correct\(.*\)/It is too correct\1Q/ | |
87 | s/unintentionally/un intentionally/ | |
88 | /un intentionally/ s/$/Q/ | |
89 | s/Polemarchus interposing./Polemarchus, interposing.Q/ | |
90 | /justice and holiness/ s/$/Q/ | |
91 | /pay your debts/ s/$/Q/ | |
92 | " text.txt | q_to_cr >text.txt+ && | |
93 | mv text.txt+ text.txt && | |
94 | git commit -a -m "Clarify" && | |
95 | git show-branch --all | |
96 | ' | |
97 | ||
98 | test_expect_success 'naive merge fails' ' | |
99 | git read-tree --reset -u HEAD && | |
100 | test_must_fail git merge-recursive HEAD^ -- HEAD remote && | |
101 | test_must_fail git update-index --refresh && | |
102 | grep "<<<<<<" text.txt | |
103 | ' | |
104 | ||
105 | test_expect_success '--ignore-space-change makes merge succeed' ' | |
106 | git read-tree --reset -u HEAD && | |
107 | git merge-recursive --ignore-space-change HEAD^ -- HEAD remote | |
108 | ' | |
109 | ||
110 | test_expect_success '--ignore-space-change: our w/s-only change wins' ' | |
111 | q_to_cr <<-\EOF >expected && | |
112 | justice and holiness and is the nurse of his age and theQ | |
113 | EOF | |
114 | ||
115 | git read-tree --reset -u HEAD && | |
116 | git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && | |
117 | grep "justice and holiness" text.txt >actual && | |
118 | test_cmp expected actual | |
119 | ' | |
120 | ||
121 | test_expect_success '--ignore-space-change: their real change wins over w/s' ' | |
122 | cat <<-\EOF >expected && | |
123 | it?---to speak the truth and to pay your debts---no more than this? And | |
124 | EOF | |
125 | ||
126 | git read-tree --reset -u HEAD && | |
127 | git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && | |
128 | grep "pay your debts" text.txt >actual && | |
129 | test_cmp expected actual | |
130 | ' | |
131 | ||
132 | test_expect_success '--ignore-space-change: does not ignore new spaces' ' | |
133 | cat <<-\EOF >expected1 && | |
134 | Well said, Cephalus, I replied; but as con cerning justice, what is | |
135 | EOF | |
136 | q_to_cr <<-\EOF >expected2 && | |
137 | un intentionally; and when he departs to the world below he is not inQ | |
138 | EOF | |
139 | ||
140 | git read-tree --reset -u HEAD && | |
141 | git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && | |
142 | grep "Well said" text.txt >actual1 && | |
143 | grep "when he departs" text.txt >actual2 && | |
144 | test_cmp expected1 actual1 && | |
145 | test_cmp expected2 actual2 | |
146 | ' | |
147 | ||
148 | test_expect_success '--ignore-all-space drops their new spaces' ' | |
149 | cat <<-\EOF >expected && | |
150 | Well said, Cephalus, I replied; but as concerning justice, what is | |
151 | EOF | |
152 | ||
153 | git read-tree --reset -u HEAD && | |
154 | git merge-recursive --ignore-all-space HEAD^ -- HEAD remote && | |
155 | grep "Well said" text.txt >actual && | |
156 | test_cmp expected actual | |
157 | ' | |
158 | ||
159 | test_expect_success '--ignore-all-space keeps our new spaces' ' | |
160 | q_to_cr <<-\EOF >expected && | |
161 | un intentionally; and when he departs to the world below he is not inQ | |
162 | EOF | |
163 | ||
164 | git read-tree --reset -u HEAD && | |
165 | git merge-recursive --ignore-all-space HEAD^ -- HEAD remote && | |
166 | grep "when he departs" text.txt >actual && | |
167 | test_cmp expected actual | |
168 | ' | |
169 | ||
170 | test_expect_success '--ignore-space-at-eol' ' | |
171 | q_to_cr <<-\EOF >expected && | |
172 | <<<<<<< HEAD | |
173 | is not in his right mind; ought I to give them back to him? No oneQ | |
174 | ======= | |
175 | is not in his right mind, ought I to give them back to him? No one | |
176 | >>>>>>> remote | |
177 | EOF | |
178 | ||
179 | git read-tree --reset -u HEAD && | |
180 | test_must_fail git merge-recursive --ignore-space-at-eol \ | |
181 | HEAD^ -- HEAD remote && | |
182 | conflict_hunks text.txt >actual && | |
183 | test_cmp expected actual | |
184 | ' | |
185 | ||
186 | test_done |