Show More
This diff has been collapsed as it changes many lines, (830 lines changed) Show them Hide them | |||||
@@ -1,104 +1,754 b'' | |||||
1 | #!/bin/sh |
|
|||
2 |
|
1 | |||
3 | mkdir -p t |
|
2 | $ mkdir -p t | |
4 | cd t |
|
3 | $ cd t | |
|
4 | $ cat <<EOF > merge | |||
|
5 | > import sys, os | |||
|
6 | > f = open(sys.argv[1], "wb") | |||
|
7 | > f.write("merge %s %s %s" % (sys.argv[1], sys.argv[2], sys.argv[3])) | |||
|
8 | > f.close() | |||
|
9 | > EOF | |||
|
10 | $ HGMERGE="python ../merge"; export HGMERGE | |||
|
11 | ||||
|
12 | perform a test merge with possible renaming | |||
|
13 | args: | |||
|
14 | $1 = action in local branch | |||
|
15 | $2 = action in remote branch | |||
|
16 | $3 = action in working dir | |||
|
17 | $4 = expected result | |||
5 |
|
18 | |||
6 | cat <<EOF > merge |
|
19 | $ tm() | |
7 | import sys, os |
|
20 | > { | |
8 | f = open(sys.argv[1], "wb") |
|
21 | > mkdir t | |
9 | f.write("merge %s %s %s" % (sys.argv[1], sys.argv[2], sys.argv[3])) |
|
22 | > cd t | |
10 | f.close() |
|
23 | > hg init | |
11 | EOF |
|
24 | > echo "[merge]" >> .hg/hgrc | |
12 | HGMERGE="python ../merge"; export HGMERGE |
|
25 | > echo "followcopies = 1" >> .hg/hgrc | |
|
26 | > | |||
|
27 | > # base | |||
|
28 | > echo base > a | |||
|
29 | > echo base > rev # used to force commits | |||
|
30 | > hg add a rev | |||
|
31 | > hg ci -m "base" | |||
|
32 | > | |||
|
33 | > # remote | |||
|
34 | > echo remote > rev | |||
|
35 | > if [ "$2" != "" ] ; then $2 ; fi | |||
|
36 | > hg ci -m "remote" | |||
|
37 | > | |||
|
38 | > # local | |||
|
39 | > hg co -q 0 | |||
|
40 | > echo local > rev | |||
|
41 | > if [ "$1" != "" ] ; then $1 ; fi | |||
|
42 | > hg ci -m "local" | |||
|
43 | > | |||
|
44 | > # working dir | |||
|
45 | > echo local > rev | |||
|
46 | > if [ "$3" != "" ] ; then $3 ; fi | |||
|
47 | > | |||
|
48 | > # merge | |||
|
49 | > echo "--------------" | |||
|
50 | > echo "test L:$1 R:$2 W:$3 - $4" | |||
|
51 | > echo "--------------" | |||
|
52 | > hg merge -y --debug --traceback | |||
|
53 | > | |||
|
54 | > echo "--------------" | |||
|
55 | > hg status -camC -X rev | |||
|
56 | > | |||
|
57 | > hg ci -m "merge" | |||
|
58 | > | |||
|
59 | > echo "--------------" | |||
|
60 | > echo | |||
|
61 | > | |||
|
62 | > cd .. | |||
|
63 | > rm -r t | |||
|
64 | > } | |||
|
65 | $ up() { | |||
|
66 | > cp rev $1 | |||
|
67 | > hg add $1 2> /dev/null | |||
|
68 | > if [ "$2" != "" ] ; then | |||
|
69 | > cp rev $2 | |||
|
70 | > hg add $2 2> /dev/null | |||
|
71 | > fi | |||
|
72 | > } | |||
|
73 | $ uc() { up $1; hg cp $1 $2; } # update + copy | |||
|
74 | $ um() { up $1; hg mv $1 $2; } | |||
|
75 | $ nc() { hg cp $1 $2; } # just copy | |||
|
76 | $ nm() { hg mv $1 $2; } # just move | |||
|
77 | $ tm "up a " "nc a b" " " "1 get local a to b" | |||
|
78 | created new head | |||
|
79 | -------------- | |||
|
80 | test L:up a R:nc a b W: - 1 get local a to b | |||
|
81 | -------------- | |||
|
82 | searching for copies back to rev 1 | |||
|
83 | unmatched files in other: | |||
|
84 | b | |||
|
85 | all copies found (* = to merge, ! = divergent): | |||
|
86 | b -> a * | |||
|
87 | checking for directory renames | |||
|
88 | resolving manifests | |||
|
89 | overwrite None partial False | |||
|
90 | ancestor 924404dff337 local e300d1c794ec+ remote 4ce40f5aca24 | |||
|
91 | rev: versions differ -> m | |||
|
92 | a: remote copied to b -> m | |||
|
93 | preserving a for resolve of b | |||
|
94 | preserving rev for resolve of rev | |||
|
95 | updating: a 1/2 files (50.00%) | |||
|
96 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
97 | merging a and b to b | |||
|
98 | my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337 | |||
|
99 | premerge successful | |||
|
100 | updating: rev 2/2 files (100.00%) | |||
|
101 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
102 | merging rev | |||
|
103 | my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |||
|
104 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
105 | (branch merge, don't forget to commit) | |||
|
106 | -------------- | |||
|
107 | M b | |||
|
108 | a | |||
|
109 | C a | |||
|
110 | -------------- | |||
|
111 | ||||
|
112 | $ tm "nc a b" "up a " " " "2 get rem change to a and b" | |||
|
113 | created new head | |||
|
114 | -------------- | |||
|
115 | test L:nc a b R:up a W: - 2 get rem change to a and b | |||
|
116 | -------------- | |||
|
117 | searching for copies back to rev 1 | |||
|
118 | unmatched files in local: | |||
|
119 | b | |||
|
120 | all copies found (* = to merge, ! = divergent): | |||
|
121 | b -> a * | |||
|
122 | checking for directory renames | |||
|
123 | resolving manifests | |||
|
124 | overwrite None partial False | |||
|
125 | ancestor 924404dff337 local 86a2aa42fc76+ remote f4db7e329e71 | |||
|
126 | a: remote is newer -> g | |||
|
127 | b: local copied/moved to a -> m | |||
|
128 | rev: versions differ -> m | |||
|
129 | preserving b for resolve of b | |||
|
130 | preserving rev for resolve of rev | |||
|
131 | updating: a 1/3 files (33.33%) | |||
|
132 | getting a | |||
|
133 | updating: b 2/3 files (66.67%) | |||
|
134 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
135 | merging b and a to b | |||
|
136 | my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337 | |||
|
137 | premerge successful | |||
|
138 | updating: rev 3/3 files (100.00%) | |||
|
139 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
140 | merging rev | |||
|
141 | my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |||
|
142 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
143 | (branch merge, don't forget to commit) | |||
|
144 | -------------- | |||
|
145 | M a | |||
|
146 | M b | |||
|
147 | a | |||
|
148 | -------------- | |||
13 |
|
149 | |||
14 | # perform a test merge with possible renaming |
|
150 | $ tm "up a " "nm a b" " " "3 get local a change to b, remove a" | |
15 | # |
|
151 | created new head | |
16 | # args: |
|
152 | -------------- | |
17 | # $1 = action in local branch |
|
153 | test L:up a R:nm a b W: - 3 get local a change to b, remove a | |
18 | # $2 = action in remote branch |
|
154 | -------------- | |
19 | # $3 = action in working dir |
|
155 | searching for copies back to rev 1 | |
20 | # $4 = expected result |
|
156 | unmatched files in other: | |
21 | tm() |
|
157 | b | |
22 | { |
|
158 | all copies found (* = to merge, ! = divergent): | |
23 | mkdir t |
|
159 | b -> a * | |
24 | cd t |
|
160 | checking for directory renames | |
25 | hg init |
|
161 | resolving manifests | |
26 | echo "[merge]" >> .hg/hgrc |
|
162 | overwrite None partial False | |
27 | echo "followcopies = 1" >> .hg/hgrc |
|
163 | ancestor 924404dff337 local e300d1c794ec+ remote bdb19105162a | |
|
164 | rev: versions differ -> m | |||
|
165 | a: remote moved to b -> m | |||
|
166 | preserving a for resolve of b | |||
|
167 | preserving rev for resolve of rev | |||
|
168 | removing a | |||
|
169 | updating: a 1/2 files (50.00%) | |||
|
170 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
171 | merging a and b to b | |||
|
172 | my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337 | |||
|
173 | premerge successful | |||
|
174 | updating: rev 2/2 files (100.00%) | |||
|
175 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
176 | merging rev | |||
|
177 | my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337 | |||
|
178 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
179 | (branch merge, don't forget to commit) | |||
|
180 | -------------- | |||
|
181 | M b | |||
|
182 | a | |||
|
183 | -------------- | |||
|
184 | ||||
|
185 | $ tm "nm a b" "up a " " " "4 get remote change to b" | |||
|
186 | created new head | |||
|
187 | -------------- | |||
|
188 | test L:nm a b R:up a W: - 4 get remote change to b | |||
|
189 | -------------- | |||
|
190 | searching for copies back to rev 1 | |||
|
191 | unmatched files in local: | |||
|
192 | b | |||
|
193 | all copies found (* = to merge, ! = divergent): | |||
|
194 | b -> a * | |||
|
195 | checking for directory renames | |||
|
196 | resolving manifests | |||
|
197 | overwrite None partial False | |||
|
198 | ancestor 924404dff337 local 02963e448370+ remote f4db7e329e71 | |||
|
199 | b: local copied/moved to a -> m | |||
|
200 | rev: versions differ -> m | |||
|
201 | preserving b for resolve of b | |||
|
202 | preserving rev for resolve of rev | |||
|
203 | updating: b 1/2 files (50.00%) | |||
|
204 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
205 | merging b and a to b | |||
|
206 | my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337 | |||
|
207 | premerge successful | |||
|
208 | updating: rev 2/2 files (100.00%) | |||
|
209 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
210 | merging rev | |||
|
211 | my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |||
|
212 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
213 | (branch merge, don't forget to commit) | |||
|
214 | -------------- | |||
|
215 | M b | |||
|
216 | a | |||
|
217 | -------------- | |||
|
218 | ||||
|
219 | $ tm " " "nc a b" " " "5 get b" | |||
|
220 | created new head | |||
|
221 | -------------- | |||
|
222 | test L: R:nc a b W: - 5 get b | |||
|
223 | -------------- | |||
|
224 | searching for copies back to rev 1 | |||
|
225 | unmatched files in other: | |||
|
226 | b | |||
|
227 | all copies found (* = to merge, ! = divergent): | |||
|
228 | b -> a | |||
|
229 | checking for directory renames | |||
|
230 | resolving manifests | |||
|
231 | overwrite None partial False | |||
|
232 | ancestor 924404dff337 local 94b33a1b7f2d+ remote 4ce40f5aca24 | |||
|
233 | rev: versions differ -> m | |||
|
234 | b: remote created -> g | |||
|
235 | preserving rev for resolve of rev | |||
|
236 | updating: b 1/2 files (50.00%) | |||
|
237 | getting b | |||
|
238 | updating: rev 2/2 files (100.00%) | |||
|
239 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
240 | merging rev | |||
|
241 | my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |||
|
242 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |||
|
243 | (branch merge, don't forget to commit) | |||
|
244 | -------------- | |||
|
245 | M b | |||
|
246 | C a | |||
|
247 | -------------- | |||
28 |
|
248 | |||
29 | # base |
|
249 | $ tm "nc a b" " " " " "6 nothing" | |
30 | echo base > a |
|
250 | created new head | |
31 | echo base > rev # used to force commits |
|
251 | -------------- | |
32 | hg add a rev |
|
252 | test L:nc a b R: W: - 6 nothing | |
33 | hg ci -m "base" |
|
253 | -------------- | |
|
254 | searching for copies back to rev 1 | |||
|
255 | unmatched files in local: | |||
|
256 | b | |||
|
257 | all copies found (* = to merge, ! = divergent): | |||
|
258 | b -> a | |||
|
259 | checking for directory renames | |||
|
260 | resolving manifests | |||
|
261 | overwrite None partial False | |||
|
262 | ancestor 924404dff337 local 86a2aa42fc76+ remote 97c705ade336 | |||
|
263 | rev: versions differ -> m | |||
|
264 | preserving rev for resolve of rev | |||
|
265 | updating: rev 1/1 files (100.00%) | |||
|
266 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
267 | merging rev | |||
|
268 | my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337 | |||
|
269 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |||
|
270 | (branch merge, don't forget to commit) | |||
|
271 | -------------- | |||
|
272 | C a | |||
|
273 | C b | |||
|
274 | -------------- | |||
34 |
|
275 | |||
35 | # remote |
|
276 | $ tm " " "nm a b" " " "7 get b" | |
36 | echo remote > rev |
|
277 | created new head | |
37 | if [ "$2" != "" ] ; then $2 ; fi |
|
278 | -------------- | |
38 | hg ci -m "remote" |
|
279 | test L: R:nm a b W: - 7 get b | |
|
280 | -------------- | |||
|
281 | searching for copies back to rev 1 | |||
|
282 | unmatched files in other: | |||
|
283 | b | |||
|
284 | all copies found (* = to merge, ! = divergent): | |||
|
285 | b -> a | |||
|
286 | checking for directory renames | |||
|
287 | resolving manifests | |||
|
288 | overwrite None partial False | |||
|
289 | ancestor 924404dff337 local 94b33a1b7f2d+ remote bdb19105162a | |||
|
290 | a: other deleted -> r | |||
|
291 | rev: versions differ -> m | |||
|
292 | b: remote created -> g | |||
|
293 | preserving rev for resolve of rev | |||
|
294 | updating: a 1/3 files (33.33%) | |||
|
295 | removing a | |||
|
296 | updating: b 2/3 files (66.67%) | |||
|
297 | getting b | |||
|
298 | updating: rev 3/3 files (100.00%) | |||
|
299 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
300 | merging rev | |||
|
301 | my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337 | |||
|
302 | 1 files updated, 1 files merged, 1 files removed, 0 files unresolved | |||
|
303 | (branch merge, don't forget to commit) | |||
|
304 | -------------- | |||
|
305 | M b | |||
|
306 | -------------- | |||
39 |
|
307 | |||
40 | # local |
|
308 | $ tm "nm a b" " " " " "8 nothing" | |
41 | hg co -q 0 |
|
309 | created new head | |
42 | echo local > rev |
|
310 | -------------- | |
43 | if [ "$1" != "" ] ; then $1 ; fi |
|
311 | test L:nm a b R: W: - 8 nothing | |
44 | hg ci -m "local" |
|
312 | -------------- | |
|
313 | searching for copies back to rev 1 | |||
|
314 | unmatched files in local: | |||
|
315 | b | |||
|
316 | all copies found (* = to merge, ! = divergent): | |||
|
317 | b -> a | |||
|
318 | checking for directory renames | |||
|
319 | resolving manifests | |||
|
320 | overwrite None partial False | |||
|
321 | ancestor 924404dff337 local 02963e448370+ remote 97c705ade336 | |||
|
322 | rev: versions differ -> m | |||
|
323 | preserving rev for resolve of rev | |||
|
324 | updating: rev 1/1 files (100.00%) | |||
|
325 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
326 | merging rev | |||
|
327 | my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337 | |||
|
328 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |||
|
329 | (branch merge, don't forget to commit) | |||
|
330 | -------------- | |||
|
331 | C b | |||
|
332 | -------------- | |||
45 |
|
333 | |||
46 | # working dir |
|
334 | $ tm "um a b" "um a b" " " "9 do merge with ancestor in a" | |
47 | echo local > rev |
|
335 | created new head | |
48 | if [ "$3" != "" ] ; then $3 ; fi |
|
336 | -------------- | |
|
337 | test L:um a b R:um a b W: - 9 do merge with ancestor in a | |||
|
338 | -------------- | |||
|
339 | searching for copies back to rev 1 | |||
|
340 | resolving manifests | |||
|
341 | overwrite None partial False | |||
|
342 | ancestor 924404dff337 local 62e7bf090eba+ remote 49b6d8032493 | |||
|
343 | b: versions differ -> m | |||
|
344 | rev: versions differ -> m | |||
|
345 | preserving b for resolve of b | |||
|
346 | preserving rev for resolve of rev | |||
|
347 | updating: b 1/2 files (50.00%) | |||
|
348 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
349 | merging b | |||
|
350 | my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337 | |||
|
351 | updating: rev 2/2 files (100.00%) | |||
|
352 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
353 | merging rev | |||
|
354 | my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337 | |||
|
355 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
356 | (branch merge, don't forget to commit) | |||
|
357 | -------------- | |||
|
358 | M b | |||
|
359 | -------------- | |||
|
360 | ||||
|
361 | ||||
|
362 | m "um a c" "um x c" " " "10 do merge with no ancestor" | |||
49 |
|
363 | |||
50 | # merge |
|
364 | $ tm "nm a b" "nm a c" " " "11 get c, keep b" | |
51 | echo "--------------" |
|
365 | created new head | |
52 | echo "test L:$1 R:$2 W:$3 - $4" |
|
366 | -------------- | |
53 | echo "--------------" |
|
367 | test L:nm a b R:nm a c W: - 11 get c, keep b | |
54 | hg merge -y --debug --traceback |
|
368 | -------------- | |
|
369 | searching for copies back to rev 1 | |||
|
370 | unmatched files in local: | |||
|
371 | b | |||
|
372 | unmatched files in other: | |||
|
373 | c | |||
|
374 | all copies found (* = to merge, ! = divergent): | |||
|
375 | c -> a ! | |||
|
376 | b -> a ! | |||
|
377 | checking for directory renames | |||
|
378 | a: divergent renames -> dr | |||
|
379 | resolving manifests | |||
|
380 | overwrite None partial False | |||
|
381 | ancestor 924404dff337 local 02963e448370+ remote fe905ef2c33e | |||
|
382 | rev: versions differ -> m | |||
|
383 | c: remote created -> g | |||
|
384 | preserving rev for resolve of rev | |||
|
385 | updating: a 1/3 files (33.33%) | |||
|
386 | warning: detected divergent renames of a to: | |||
|
387 | b | |||
|
388 | c | |||
|
389 | updating: c 2/3 files (66.67%) | |||
|
390 | getting c | |||
|
391 | updating: rev 3/3 files (100.00%) | |||
|
392 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
393 | merging rev | |||
|
394 | my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337 | |||
|
395 | 1 files updated, 1 files merged, 0 files removed, 0 files unresolved | |||
|
396 | (branch merge, don't forget to commit) | |||
|
397 | -------------- | |||
|
398 | M c | |||
|
399 | C b | |||
|
400 | -------------- | |||
55 |
|
401 | |||
56 | echo "--------------" |
|
402 | $ tm "nc a b" "up b " " " "12 merge b no ancestor" | |
57 | hg status -camC -X rev |
|
403 | created new head | |
58 |
|
404 | -------------- | ||
59 | hg ci -m "merge" |
|
405 | test L:nc a b R:up b W: - 12 merge b no ancestor | |
|
406 | -------------- | |||
|
407 | searching for copies back to rev 1 | |||
|
408 | resolving manifests | |||
|
409 | overwrite None partial False | |||
|
410 | ancestor 924404dff337 local 86a2aa42fc76+ remote af30c7647fc7 | |||
|
411 | b: versions differ -> m | |||
|
412 | rev: versions differ -> m | |||
|
413 | preserving b for resolve of b | |||
|
414 | preserving rev for resolve of rev | |||
|
415 | updating: b 1/2 files (50.00%) | |||
|
416 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
417 | merging b | |||
|
418 | my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000 | |||
|
419 | updating: rev 2/2 files (100.00%) | |||
|
420 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
421 | merging rev | |||
|
422 | my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337 | |||
|
423 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
424 | (branch merge, don't forget to commit) | |||
|
425 | -------------- | |||
|
426 | M b | |||
|
427 | C a | |||
|
428 | -------------- | |||
60 |
|
429 | |||
61 | echo "--------------" |
|
430 | $ tm "up b " "nm a b" " " "13 merge b no ancestor" | |
62 | echo |
|
431 | created new head | |
|
432 | -------------- | |||
|
433 | test L:up b R:nm a b W: - 13 merge b no ancestor | |||
|
434 | -------------- | |||
|
435 | searching for copies back to rev 1 | |||
|
436 | resolving manifests | |||
|
437 | overwrite None partial False | |||
|
438 | ancestor 924404dff337 local 59318016310c+ remote bdb19105162a | |||
|
439 | a: other deleted -> r | |||
|
440 | b: versions differ -> m | |||
|
441 | rev: versions differ -> m | |||
|
442 | preserving b for resolve of b | |||
|
443 | preserving rev for resolve of rev | |||
|
444 | updating: a 1/3 files (33.33%) | |||
|
445 | removing a | |||
|
446 | updating: b 2/3 files (66.67%) | |||
|
447 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
448 | merging b | |||
|
449 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 | |||
|
450 | updating: rev 3/3 files (100.00%) | |||
|
451 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
452 | merging rev | |||
|
453 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 | |||
|
454 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved | |||
|
455 | (branch merge, don't forget to commit) | |||
|
456 | -------------- | |||
|
457 | M b | |||
|
458 | -------------- | |||
63 |
|
459 | |||
64 | cd .. |
|
460 | $ tm "nc a b" "up a b" " " "14 merge b no ancestor" | |
65 | rm -r t |
|
461 | created new head | |
66 | } |
|
462 | -------------- | |
|
463 | test L:nc a b R:up a b W: - 14 merge b no ancestor | |||
|
464 | -------------- | |||
|
465 | searching for copies back to rev 1 | |||
|
466 | resolving manifests | |||
|
467 | overwrite None partial False | |||
|
468 | ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a | |||
|
469 | a: remote is newer -> g | |||
|
470 | b: versions differ -> m | |||
|
471 | rev: versions differ -> m | |||
|
472 | preserving b for resolve of b | |||
|
473 | preserving rev for resolve of rev | |||
|
474 | updating: a 1/3 files (33.33%) | |||
|
475 | getting a | |||
|
476 | updating: b 2/3 files (66.67%) | |||
|
477 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
478 | merging b | |||
|
479 | my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000 | |||
|
480 | updating: rev 3/3 files (100.00%) | |||
|
481 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
482 | merging rev | |||
|
483 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 | |||
|
484 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
485 | (branch merge, don't forget to commit) | |||
|
486 | -------------- | |||
|
487 | M a | |||
|
488 | M b | |||
|
489 | -------------- | |||
67 |
|
490 | |||
68 | up() { |
|
491 | $ tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" | |
69 | cp rev $1 |
|
492 | created new head | |
70 | hg add $1 2> /dev/null |
|
493 | -------------- | |
71 | if [ "$2" != "" ] ; then |
|
494 | test L:up b R:nm a b W: - 15 merge b no ancestor, remove a | |
72 | cp rev $2 |
|
495 | -------------- | |
73 | hg add $2 2> /dev/null |
|
496 | searching for copies back to rev 1 | |
74 | fi |
|
497 | resolving manifests | |
75 | } |
|
498 | overwrite None partial False | |
|
499 | ancestor 924404dff337 local 59318016310c+ remote bdb19105162a | |||
|
500 | a: other deleted -> r | |||
|
501 | b: versions differ -> m | |||
|
502 | rev: versions differ -> m | |||
|
503 | preserving b for resolve of b | |||
|
504 | preserving rev for resolve of rev | |||
|
505 | updating: a 1/3 files (33.33%) | |||
|
506 | removing a | |||
|
507 | updating: b 2/3 files (66.67%) | |||
|
508 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
509 | merging b | |||
|
510 | my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000 | |||
|
511 | updating: rev 3/3 files (100.00%) | |||
|
512 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
513 | merging rev | |||
|
514 | my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337 | |||
|
515 | 0 files updated, 2 files merged, 1 files removed, 0 files unresolved | |||
|
516 | (branch merge, don't forget to commit) | |||
|
517 | -------------- | |||
|
518 | M b | |||
|
519 | -------------- | |||
|
520 | ||||
|
521 | $ tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" | |||
|
522 | created new head | |||
|
523 | -------------- | |||
|
524 | test L:nc a b R:up a b W: - 16 get a, merge b no ancestor | |||
|
525 | -------------- | |||
|
526 | searching for copies back to rev 1 | |||
|
527 | resolving manifests | |||
|
528 | overwrite None partial False | |||
|
529 | ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a | |||
|
530 | a: remote is newer -> g | |||
|
531 | b: versions differ -> m | |||
|
532 | rev: versions differ -> m | |||
|
533 | preserving b for resolve of b | |||
|
534 | preserving rev for resolve of rev | |||
|
535 | updating: a 1/3 files (33.33%) | |||
|
536 | getting a | |||
|
537 | updating: b 2/3 files (66.67%) | |||
|
538 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
539 | merging b | |||
|
540 | my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000 | |||
|
541 | updating: rev 3/3 files (100.00%) | |||
|
542 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
543 | merging rev | |||
|
544 | my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337 | |||
|
545 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
546 | (branch merge, don't forget to commit) | |||
|
547 | -------------- | |||
|
548 | M a | |||
|
549 | M b | |||
|
550 | -------------- | |||
76 |
|
551 | |||
77 | uc() { up $1; hg cp $1 $2; } # update + copy |
|
552 | $ tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" | |
78 | um() { up $1; hg mv $1 $2; } |
|
553 | created new head | |
79 | nc() { hg cp $1 $2; } # just copy |
|
554 | -------------- | |
80 | nm() { hg mv $1 $2; } # just move |
|
555 | test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor | |
|
556 | -------------- | |||
|
557 | searching for copies back to rev 1 | |||
|
558 | resolving manifests | |||
|
559 | overwrite None partial False | |||
|
560 | ancestor 924404dff337 local 0b76e65c8289+ remote 4ce40f5aca24 | |||
|
561 | b: versions differ -> m | |||
|
562 | rev: versions differ -> m | |||
|
563 | preserving b for resolve of b | |||
|
564 | preserving rev for resolve of rev | |||
|
565 | updating: b 1/2 files (50.00%) | |||
|
566 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
567 | merging b | |||
|
568 | my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000 | |||
|
569 | updating: rev 2/2 files (100.00%) | |||
|
570 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
571 | merging rev | |||
|
572 | my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337 | |||
|
573 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
574 | (branch merge, don't forget to commit) | |||
|
575 | -------------- | |||
|
576 | M b | |||
|
577 | C a | |||
|
578 | -------------- | |||
|
579 | ||||
|
580 | $ tm "nm a b" "up a b" " " "18 merge b no ancestor" | |||
|
581 | created new head | |||
|
582 | -------------- | |||
|
583 | test L:nm a b R:up a b W: - 18 merge b no ancestor | |||
|
584 | -------------- | |||
|
585 | searching for copies back to rev 1 | |||
|
586 | resolving manifests | |||
|
587 | overwrite None partial False | |||
|
588 | ancestor 924404dff337 local 02963e448370+ remote 8dbce441892a | |||
|
589 | b: versions differ -> m | |||
|
590 | rev: versions differ -> m | |||
|
591 | remote changed a which local deleted | |||
|
592 | use (c)hanged version or leave (d)eleted? c | |||
|
593 | a: prompt recreating -> g | |||
|
594 | preserving b for resolve of b | |||
|
595 | preserving rev for resolve of rev | |||
|
596 | updating: a 1/3 files (33.33%) | |||
|
597 | getting a | |||
|
598 | updating: b 2/3 files (66.67%) | |||
|
599 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
600 | merging b | |||
|
601 | my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000 | |||
|
602 | updating: rev 3/3 files (100.00%) | |||
|
603 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
604 | merging rev | |||
|
605 | my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337 | |||
|
606 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
607 | (branch merge, don't forget to commit) | |||
|
608 | -------------- | |||
|
609 | M a | |||
|
610 | M b | |||
|
611 | -------------- | |||
|
612 | ||||
|
613 | $ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" | |||
|
614 | created new head | |||
|
615 | -------------- | |||
|
616 | test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a | |||
|
617 | -------------- | |||
|
618 | searching for copies back to rev 1 | |||
|
619 | resolving manifests | |||
|
620 | overwrite None partial False | |||
|
621 | ancestor 924404dff337 local 0b76e65c8289+ remote bdb19105162a | |||
|
622 | local changed a which remote deleted | |||
|
623 | use (c)hanged version or (d)elete? c | |||
|
624 | a: prompt keep -> a | |||
|
625 | b: versions differ -> m | |||
|
626 | rev: versions differ -> m | |||
|
627 | preserving b for resolve of b | |||
|
628 | preserving rev for resolve of rev | |||
|
629 | updating: a 1/3 files (33.33%) | |||
|
630 | updating: b 2/3 files (66.67%) | |||
|
631 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
632 | merging b | |||
|
633 | my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000 | |||
|
634 | updating: rev 3/3 files (100.00%) | |||
|
635 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
636 | merging rev | |||
|
637 | my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337 | |||
|
638 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
639 | (branch merge, don't forget to commit) | |||
|
640 | -------------- | |||
|
641 | M b | |||
|
642 | C a | |||
|
643 | -------------- | |||
81 |
|
644 | |||
82 |
tm "up a " " |
|
645 | $ tm "up a " "um a b" " " "20 merge a and b to b, remove a" | |
83 | tm "nc a b" "up a " " " "2 get rem change to a and b" |
|
646 | created new head | |
84 | tm "up a " "nm a b" " " "3 get local a change to b, remove a" |
|
647 | -------------- | |
85 | tm "nm a b" "up a " " " "4 get remote change to b" |
|
648 | test L:up a R:um a b W: - 20 merge a and b to b, remove a | |
86 | tm " " "nc a b" " " "5 get b" |
|
649 | -------------- | |
87 | tm "nc a b" " " " " "6 nothing" |
|
650 | searching for copies back to rev 1 | |
88 | tm " " "nm a b" " " "7 get b" |
|
651 | unmatched files in other: | |
89 | tm "nm a b" " " " " "8 nothing" |
|
652 | b | |
90 | tm "um a b" "um a b" " " "9 do merge with ancestor in a" |
|
653 | all copies found (* = to merge, ! = divergent): | |
91 | #tm "um a c" "um x c" " " "10 do merge with no ancestor" |
|
654 | b -> a * | |
92 | tm "nm a b" "nm a c" " " "11 get c, keep b" |
|
655 | checking for directory renames | |
93 | tm "nc a b" "up b " " " "12 merge b no ancestor" |
|
656 | resolving manifests | |
94 | tm "up b " "nm a b" " " "13 merge b no ancestor" |
|
657 | overwrite None partial False | |
95 | tm "nc a b" "up a b" " " "14 merge b no ancestor" |
|
658 | ancestor 924404dff337 local e300d1c794ec+ remote 49b6d8032493 | |
96 | tm "up b " "nm a b" " " "15 merge b no ancestor, remove a" |
|
659 | rev: versions differ -> m | |
97 | tm "nc a b" "up a b" " " "16 get a, merge b no ancestor" |
|
660 | a: remote moved to b -> m | |
98 | tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor" |
|
661 | preserving a for resolve of b | |
99 | tm "nm a b" "up a b" " " "18 merge b no ancestor" |
|
662 | preserving rev for resolve of rev | |
100 | tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a" |
|
663 | removing a | |
101 | tm "up a " "um a b" " " "20 merge a and b to b, remove a" |
|
664 | updating: a 1/2 files (50.00%) | |
102 | tm "um a b" "up a " " " "21 merge a and b to b" |
|
665 | picked tool 'python ../merge' for b (binary False symlink False) | |
103 | #tm "nm a b" "um x a" " " "22 get a, keep b" |
|
666 | merging a and b to b | |
104 | tm "nm a b" "up a c" " " "23 get c, keep b" |
|
667 | my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337 | |
|
668 | updating: rev 2/2 files (100.00%) | |||
|
669 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
670 | merging rev | |||
|
671 | my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337 | |||
|
672 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
673 | (branch merge, don't forget to commit) | |||
|
674 | -------------- | |||
|
675 | M b | |||
|
676 | a | |||
|
677 | -------------- | |||
|
678 | ||||
|
679 | $ tm "um a b" "up a " " " "21 merge a and b to b" | |||
|
680 | created new head | |||
|
681 | -------------- | |||
|
682 | test L:um a b R:up a W: - 21 merge a and b to b | |||
|
683 | -------------- | |||
|
684 | searching for copies back to rev 1 | |||
|
685 | unmatched files in local: | |||
|
686 | b | |||
|
687 | all copies found (* = to merge, ! = divergent): | |||
|
688 | b -> a * | |||
|
689 | checking for directory renames | |||
|
690 | resolving manifests | |||
|
691 | overwrite None partial False | |||
|
692 | ancestor 924404dff337 local 62e7bf090eba+ remote f4db7e329e71 | |||
|
693 | b: local copied/moved to a -> m | |||
|
694 | rev: versions differ -> m | |||
|
695 | preserving b for resolve of b | |||
|
696 | preserving rev for resolve of rev | |||
|
697 | updating: b 1/2 files (50.00%) | |||
|
698 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
699 | merging b and a to b | |||
|
700 | my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337 | |||
|
701 | updating: rev 2/2 files (100.00%) | |||
|
702 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
703 | merging rev | |||
|
704 | my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337 | |||
|
705 | 0 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
706 | (branch merge, don't forget to commit) | |||
|
707 | -------------- | |||
|
708 | M b | |||
|
709 | a | |||
|
710 | -------------- | |||
|
711 | ||||
|
712 | ||||
|
713 | m "nm a b" "um x a" " " "22 get a, keep b" | |||
|
714 | ||||
|
715 | $ tm "nm a b" "up a c" " " "23 get c, keep b" | |||
|
716 | created new head | |||
|
717 | -------------- | |||
|
718 | test L:nm a b R:up a c W: - 23 get c, keep b | |||
|
719 | -------------- | |||
|
720 | searching for copies back to rev 1 | |||
|
721 | unmatched files in local: | |||
|
722 | b | |||
|
723 | unmatched files in other: | |||
|
724 | c | |||
|
725 | all copies found (* = to merge, ! = divergent): | |||
|
726 | b -> a * | |||
|
727 | checking for directory renames | |||
|
728 | resolving manifests | |||
|
729 | overwrite None partial False | |||
|
730 | ancestor 924404dff337 local 02963e448370+ remote 2b958612230f | |||
|
731 | b: local copied/moved to a -> m | |||
|
732 | rev: versions differ -> m | |||
|
733 | c: remote created -> g | |||
|
734 | preserving b for resolve of b | |||
|
735 | preserving rev for resolve of rev | |||
|
736 | updating: b 1/3 files (33.33%) | |||
|
737 | picked tool 'python ../merge' for b (binary False symlink False) | |||
|
738 | merging b and a to b | |||
|
739 | my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337 | |||
|
740 | premerge successful | |||
|
741 | updating: c 2/3 files (66.67%) | |||
|
742 | getting c | |||
|
743 | updating: rev 3/3 files (100.00%) | |||
|
744 | picked tool 'python ../merge' for rev (binary False symlink False) | |||
|
745 | merging rev | |||
|
746 | my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337 | |||
|
747 | 1 files updated, 2 files merged, 0 files removed, 0 files unresolved | |||
|
748 | (branch merge, don't forget to commit) | |||
|
749 | -------------- | |||
|
750 | M b | |||
|
751 | a | |||
|
752 | M c | |||
|
753 | -------------- | |||
|
754 |
General Comments 0
You need to be logged in to leave comments.
Login now