##// END OF EJS Templates
py3: write the file in str mode in tests/test-rename-merge2.t...
Pulkit Goyal -
r39460:7450f650 default
parent child Browse files
Show More
@@ -1,1071 +1,1071 b''
1 1
2 2 $ mkdir -p t
3 3 $ cd t
4 4 $ cat <<EOF > merge
5 5 > import sys, os
6 > f = open(sys.argv[1], "wb")
6 > f = open(sys.argv[1], "w")
7 7 > f.write("merge %s %s %s" % (sys.argv[1], sys.argv[2], sys.argv[3]))
8 8 > f.close()
9 9 > EOF
10 10
11 11 perform a test merge with possible renaming
12 12 args:
13 13 $1 = action in local branch
14 14 $2 = action in remote branch
15 15 $3 = action in working dir
16 16 $4 = expected result
17 17
18 18 $ tm()
19 19 > {
20 20 > hg init t
21 21 > cd t
22 22 > echo "[merge]" >> .hg/hgrc
23 23 > echo "followcopies = 1" >> .hg/hgrc
24 24 >
25 25 > # base
26 26 > echo base > a
27 27 > echo base > rev # used to force commits
28 28 > hg add a rev
29 29 > hg ci -m "base"
30 30 >
31 31 > # remote
32 32 > echo remote > rev
33 33 > if [ "$2" != "" ] ; then $2 ; fi
34 34 > hg ci -m "remote"
35 35 >
36 36 > # local
37 37 > hg co -q 0
38 38 > echo local > rev
39 39 > if [ "$1" != "" ] ; then $1 ; fi
40 40 > hg ci -m "local"
41 41 >
42 42 > # working dir
43 43 > echo local > rev
44 44 > if [ "$3" != "" ] ; then $3 ; fi
45 45 >
46 46 > # merge
47 47 > echo "--------------"
48 48 > echo "test L:$1 R:$2 W:$3 - $4"
49 49 > echo "--------------"
50 50 > hg merge -y --debug --traceback --tool="$PYTHON ../merge"
51 51 >
52 52 > echo "--------------"
53 53 > hg status -camC -X rev
54 54 >
55 55 > hg ci -m "merge"
56 56 >
57 57 > echo "--------------"
58 58 > echo
59 59 >
60 60 > cd ..
61 61 > rm -r t
62 62 > }
63 63 $ up() {
64 64 > cp rev $1
65 65 > hg add $1 2> /dev/null
66 66 > if [ "$2" != "" ] ; then
67 67 > cp rev $2
68 68 > hg add $2 2> /dev/null
69 69 > fi
70 70 > }
71 71 $ uc() { up $1; hg cp $1 $2; } # update + copy
72 72 $ um() { up $1; hg mv $1 $2; }
73 73 $ nc() { hg cp $1 $2; } # just copy
74 74 $ nm() { hg mv $1 $2; } # just move
75 75 $ tm "up a " "nc a b" " " "1 get local a to b"
76 76 created new head
77 77 --------------
78 78 test L:up a R:nc a b W: - 1 get local a to b
79 79 --------------
80 80 searching for copies back to rev 1
81 81 unmatched files in other:
82 82 b
83 83 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
84 84 src: 'a' -> dst: 'b' *
85 85 checking for directory renames
86 86 resolving manifests
87 87 branchmerge: True, force: False, partial: False
88 88 ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24
89 89 preserving a for resolve of b
90 90 preserving rev for resolve of rev
91 91 starting 4 threads for background file closing (?)
92 92 b: remote copied from a -> m (premerge)
93 93 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
94 94 merging a and b to b
95 95 my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
96 96 premerge successful
97 97 rev: versions differ -> m (premerge)
98 98 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
99 99 merging rev
100 100 my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337
101 101 rev: versions differ -> m (merge)
102 102 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
103 103 my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337
104 104 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
105 105 merge tool returned: 0
106 106 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
107 107 (branch merge, don't forget to commit)
108 108 --------------
109 109 M b
110 110 a
111 111 C a
112 112 --------------
113 113
114 114 $ tm "nc a b" "up a " " " "2 get rem change to a and b"
115 115 created new head
116 116 --------------
117 117 test L:nc a b R:up a W: - 2 get rem change to a and b
118 118 --------------
119 119 searching for copies back to rev 1
120 120 unmatched files in local:
121 121 b
122 122 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
123 123 src: 'a' -> dst: 'b' *
124 124 checking for directory renames
125 125 resolving manifests
126 126 branchmerge: True, force: False, partial: False
127 127 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71
128 128 preserving b for resolve of b
129 129 preserving rev for resolve of rev
130 130 a: remote is newer -> g
131 131 getting a
132 132 b: local copied/moved from a -> m (premerge)
133 133 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
134 134 merging b and a to b
135 135 my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337
136 136 premerge successful
137 137 rev: versions differ -> m (premerge)
138 138 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
139 139 merging rev
140 140 my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337
141 141 rev: versions differ -> m (merge)
142 142 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
143 143 my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337
144 144 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
145 145 merge tool returned: 0
146 146 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
147 147 (branch merge, don't forget to commit)
148 148 --------------
149 149 M a
150 150 M b
151 151 a
152 152 --------------
153 153
154 154 $ tm "up a " "nm a b" " " "3 get local a change to b, remove a"
155 155 created new head
156 156 --------------
157 157 test L:up a R:nm a b W: - 3 get local a change to b, remove a
158 158 --------------
159 159 searching for copies back to rev 1
160 160 unmatched files in other:
161 161 b
162 162 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
163 163 src: 'a' -> dst: 'b' *
164 164 checking for directory renames
165 165 resolving manifests
166 166 branchmerge: True, force: False, partial: False
167 167 ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a
168 168 preserving a for resolve of b
169 169 preserving rev for resolve of rev
170 170 removing a
171 171 starting 4 threads for background file closing (?)
172 172 b: remote moved from a -> m (premerge)
173 173 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
174 174 merging a and b to b
175 175 my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337
176 176 premerge successful
177 177 rev: versions differ -> m (premerge)
178 178 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
179 179 merging rev
180 180 my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337
181 181 rev: versions differ -> m (merge)
182 182 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
183 183 my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337
184 184 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
185 185 merge tool returned: 0
186 186 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
187 187 (branch merge, don't forget to commit)
188 188 --------------
189 189 M b
190 190 a
191 191 --------------
192 192
193 193 $ tm "nm a b" "up a " " " "4 get remote change to b"
194 194 created new head
195 195 --------------
196 196 test L:nm a b R:up a W: - 4 get remote change to b
197 197 --------------
198 198 searching for copies back to rev 1
199 199 unmatched files in local:
200 200 b
201 201 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
202 202 src: 'a' -> dst: 'b' *
203 203 checking for directory renames
204 204 resolving manifests
205 205 branchmerge: True, force: False, partial: False
206 206 ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71
207 207 preserving b for resolve of b
208 208 preserving rev for resolve of rev
209 209 starting 4 threads for background file closing (?)
210 210 b: local copied/moved from a -> m (premerge)
211 211 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
212 212 merging b and a to b
213 213 my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337
214 214 premerge successful
215 215 rev: versions differ -> m (premerge)
216 216 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
217 217 merging rev
218 218 my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337
219 219 rev: versions differ -> m (merge)
220 220 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
221 221 my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337
222 222 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
223 223 merge tool returned: 0
224 224 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
225 225 (branch merge, don't forget to commit)
226 226 --------------
227 227 M b
228 228 a
229 229 --------------
230 230
231 231 $ tm " " "nc a b" " " "5 get b"
232 232 created new head
233 233 --------------
234 234 test L: R:nc a b W: - 5 get b
235 235 --------------
236 236 searching for copies back to rev 1
237 237 unmatched files in other:
238 238 b
239 239 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
240 240 src: 'a' -> dst: 'b'
241 241 checking for directory renames
242 242 resolving manifests
243 243 branchmerge: True, force: False, partial: False
244 244 ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24
245 245 preserving rev for resolve of rev
246 246 b: remote created -> g
247 247 getting b
248 248 rev: versions differ -> m (premerge)
249 249 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
250 250 merging rev
251 251 my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337
252 252 rev: versions differ -> m (merge)
253 253 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
254 254 my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337
255 255 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
256 256 merge tool returned: 0
257 257 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
258 258 (branch merge, don't forget to commit)
259 259 --------------
260 260 M b
261 261 C a
262 262 --------------
263 263
264 264 $ tm "nc a b" " " " " "6 nothing"
265 265 created new head
266 266 --------------
267 267 test L:nc a b R: W: - 6 nothing
268 268 --------------
269 269 searching for copies back to rev 1
270 270 unmatched files in local:
271 271 b
272 272 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
273 273 src: 'a' -> dst: 'b'
274 274 checking for directory renames
275 275 resolving manifests
276 276 branchmerge: True, force: False, partial: False
277 277 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336
278 278 preserving rev for resolve of rev
279 279 starting 4 threads for background file closing (?)
280 280 rev: versions differ -> m (premerge)
281 281 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
282 282 merging rev
283 283 my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337
284 284 rev: versions differ -> m (merge)
285 285 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
286 286 my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337
287 287 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
288 288 merge tool returned: 0
289 289 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
290 290 (branch merge, don't forget to commit)
291 291 --------------
292 292 C a
293 293 C b
294 294 --------------
295 295
296 296 $ tm " " "nm a b" " " "7 get b"
297 297 created new head
298 298 --------------
299 299 test L: R:nm a b W: - 7 get b
300 300 --------------
301 301 searching for copies back to rev 1
302 302 unmatched files in other:
303 303 b
304 304 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
305 305 src: 'a' -> dst: 'b'
306 306 checking for directory renames
307 307 resolving manifests
308 308 branchmerge: True, force: False, partial: False
309 309 ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a
310 310 preserving rev for resolve of rev
311 311 a: other deleted -> r
312 312 removing a
313 313 b: remote created -> g
314 314 getting b
315 315 rev: versions differ -> m (premerge)
316 316 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
317 317 merging rev
318 318 my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337
319 319 rev: versions differ -> m (merge)
320 320 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
321 321 my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337
322 322 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
323 323 merge tool returned: 0
324 324 1 files updated, 1 files merged, 1 files removed, 0 files unresolved
325 325 (branch merge, don't forget to commit)
326 326 --------------
327 327 M b
328 328 --------------
329 329
330 330 $ tm "nm a b" " " " " "8 nothing"
331 331 created new head
332 332 --------------
333 333 test L:nm a b R: W: - 8 nothing
334 334 --------------
335 335 searching for copies back to rev 1
336 336 unmatched files in local:
337 337 b
338 338 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
339 339 src: 'a' -> dst: 'b'
340 340 checking for directory renames
341 341 resolving manifests
342 342 branchmerge: True, force: False, partial: False
343 343 ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336
344 344 preserving rev for resolve of rev
345 345 starting 4 threads for background file closing (?)
346 346 rev: versions differ -> m (premerge)
347 347 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
348 348 merging rev
349 349 my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337
350 350 rev: versions differ -> m (merge)
351 351 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
352 352 my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337
353 353 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
354 354 merge tool returned: 0
355 355 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
356 356 (branch merge, don't forget to commit)
357 357 --------------
358 358 C b
359 359 --------------
360 360
361 361 $ tm "um a b" "um a b" " " "9 do merge with ancestor in a"
362 362 created new head
363 363 --------------
364 364 test L:um a b R:um a b W: - 9 do merge with ancestor in a
365 365 --------------
366 366 searching for copies back to rev 1
367 367 unmatched files new in both:
368 368 b
369 369 resolving manifests
370 370 branchmerge: True, force: False, partial: False
371 371 ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493
372 372 preserving b for resolve of b
373 373 preserving rev for resolve of rev
374 374 starting 4 threads for background file closing (?)
375 375 b: both renamed from a -> m (premerge)
376 376 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
377 377 merging b
378 378 my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337
379 379 rev: versions differ -> m (premerge)
380 380 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
381 381 merging rev
382 382 my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337
383 383 b: both renamed from a -> m (merge)
384 384 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
385 385 my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337
386 386 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
387 387 merge tool returned: 0
388 388 rev: versions differ -> m (merge)
389 389 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
390 390 my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337
391 391 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
392 392 merge tool returned: 0
393 393 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
394 394 (branch merge, don't forget to commit)
395 395 --------------
396 396 M b
397 397 --------------
398 398
399 399
400 400 m "um a c" "um x c" " " "10 do merge with no ancestor"
401 401
402 402 $ tm "nm a b" "nm a c" " " "11 get c, keep b"
403 403 created new head
404 404 --------------
405 405 test L:nm a b R:nm a c W: - 11 get c, keep b
406 406 --------------
407 407 searching for copies back to rev 1
408 408 unmatched files in local:
409 409 b
410 410 unmatched files in other:
411 411 c
412 412 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
413 413 src: 'a' -> dst: 'b' !
414 414 src: 'a' -> dst: 'c' !
415 415 checking for directory renames
416 416 resolving manifests
417 417 branchmerge: True, force: False, partial: False
418 418 ancestor: 924404dff337, local: 02963e448370+, remote: fe905ef2c33e
419 419 note: possible conflict - a was renamed multiple times to:
420 420 b
421 421 c
422 422 preserving rev for resolve of rev
423 423 c: remote created -> g
424 424 getting c
425 425 rev: versions differ -> m (premerge)
426 426 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
427 427 merging rev
428 428 my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337
429 429 rev: versions differ -> m (merge)
430 430 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
431 431 my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337
432 432 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
433 433 merge tool returned: 0
434 434 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
435 435 (branch merge, don't forget to commit)
436 436 --------------
437 437 M c
438 438 C b
439 439 --------------
440 440
441 441 $ tm "nc a b" "up b " " " "12 merge b no ancestor"
442 442 created new head
443 443 --------------
444 444 test L:nc a b R:up b W: - 12 merge b no ancestor
445 445 --------------
446 446 searching for copies back to rev 1
447 447 unmatched files new in both:
448 448 b
449 449 resolving manifests
450 450 branchmerge: True, force: False, partial: False
451 451 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7
452 452 preserving b for resolve of b
453 453 preserving rev for resolve of rev
454 454 starting 4 threads for background file closing (?)
455 455 b: both created -> m (premerge)
456 456 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
457 457 merging b
458 458 my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000
459 459 rev: versions differ -> m (premerge)
460 460 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
461 461 merging rev
462 462 my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337
463 463 b: both created -> m (merge)
464 464 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
465 465 my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000
466 466 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
467 467 merge tool returned: 0
468 468 rev: versions differ -> m (merge)
469 469 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
470 470 my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337
471 471 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
472 472 merge tool returned: 0
473 473 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
474 474 (branch merge, don't forget to commit)
475 475 --------------
476 476 M b
477 477 C a
478 478 --------------
479 479
480 480 $ tm "up b " "nm a b" " " "13 merge b no ancestor"
481 481 created new head
482 482 --------------
483 483 test L:up b R:nm a b W: - 13 merge b no ancestor
484 484 --------------
485 485 searching for copies back to rev 1
486 486 unmatched files new in both:
487 487 b
488 488 resolving manifests
489 489 branchmerge: True, force: False, partial: False
490 490 ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
491 491 preserving b for resolve of b
492 492 preserving rev for resolve of rev
493 493 a: other deleted -> r
494 494 removing a
495 495 starting 4 threads for background file closing (?)
496 496 b: both created -> m (premerge)
497 497 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
498 498 merging b
499 499 my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
500 500 rev: versions differ -> m (premerge)
501 501 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
502 502 merging rev
503 503 my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
504 504 b: both created -> m (merge)
505 505 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
506 506 my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
507 507 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
508 508 merge tool returned: 0
509 509 rev: versions differ -> m (merge)
510 510 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
511 511 my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
512 512 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
513 513 merge tool returned: 0
514 514 0 files updated, 2 files merged, 1 files removed, 0 files unresolved
515 515 (branch merge, don't forget to commit)
516 516 --------------
517 517 M b
518 518 --------------
519 519
520 520 $ tm "nc a b" "up a b" " " "14 merge b no ancestor"
521 521 created new head
522 522 --------------
523 523 test L:nc a b R:up a b W: - 14 merge b no ancestor
524 524 --------------
525 525 searching for copies back to rev 1
526 526 unmatched files new in both:
527 527 b
528 528 resolving manifests
529 529 branchmerge: True, force: False, partial: False
530 530 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
531 531 preserving b for resolve of b
532 532 preserving rev for resolve of rev
533 533 a: remote is newer -> g
534 534 getting a
535 535 b: both created -> m (premerge)
536 536 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
537 537 merging b
538 538 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
539 539 rev: versions differ -> m (premerge)
540 540 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
541 541 merging rev
542 542 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
543 543 b: both created -> m (merge)
544 544 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
545 545 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
546 546 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
547 547 merge tool returned: 0
548 548 rev: versions differ -> m (merge)
549 549 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
550 550 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
551 551 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
552 552 merge tool returned: 0
553 553 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
554 554 (branch merge, don't forget to commit)
555 555 --------------
556 556 M a
557 557 M b
558 558 --------------
559 559
560 560 $ tm "up b " "nm a b" " " "15 merge b no ancestor, remove a"
561 561 created new head
562 562 --------------
563 563 test L:up b R:nm a b W: - 15 merge b no ancestor, remove a
564 564 --------------
565 565 searching for copies back to rev 1
566 566 unmatched files new in both:
567 567 b
568 568 resolving manifests
569 569 branchmerge: True, force: False, partial: False
570 570 ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
571 571 preserving b for resolve of b
572 572 preserving rev for resolve of rev
573 573 a: other deleted -> r
574 574 removing a
575 575 starting 4 threads for background file closing (?)
576 576 b: both created -> m (premerge)
577 577 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
578 578 merging b
579 579 my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
580 580 rev: versions differ -> m (premerge)
581 581 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
582 582 merging rev
583 583 my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
584 584 b: both created -> m (merge)
585 585 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
586 586 my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
587 587 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
588 588 merge tool returned: 0
589 589 rev: versions differ -> m (merge)
590 590 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
591 591 my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
592 592 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
593 593 merge tool returned: 0
594 594 0 files updated, 2 files merged, 1 files removed, 0 files unresolved
595 595 (branch merge, don't forget to commit)
596 596 --------------
597 597 M b
598 598 --------------
599 599
600 600 $ tm "nc a b" "up a b" " " "16 get a, merge b no ancestor"
601 601 created new head
602 602 --------------
603 603 test L:nc a b R:up a b W: - 16 get a, merge b no ancestor
604 604 --------------
605 605 searching for copies back to rev 1
606 606 unmatched files new in both:
607 607 b
608 608 resolving manifests
609 609 branchmerge: True, force: False, partial: False
610 610 ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
611 611 preserving b for resolve of b
612 612 preserving rev for resolve of rev
613 613 a: remote is newer -> g
614 614 getting a
615 615 b: both created -> m (premerge)
616 616 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
617 617 merging b
618 618 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
619 619 rev: versions differ -> m (premerge)
620 620 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
621 621 merging rev
622 622 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
623 623 b: both created -> m (merge)
624 624 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
625 625 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
626 626 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
627 627 merge tool returned: 0
628 628 rev: versions differ -> m (merge)
629 629 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
630 630 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
631 631 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
632 632 merge tool returned: 0
633 633 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
634 634 (branch merge, don't forget to commit)
635 635 --------------
636 636 M a
637 637 M b
638 638 --------------
639 639
640 640 $ tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor"
641 641 created new head
642 642 --------------
643 643 test L:up a b R:nc a b W: - 17 keep a, merge b no ancestor
644 644 --------------
645 645 searching for copies back to rev 1
646 646 unmatched files new in both:
647 647 b
648 648 resolving manifests
649 649 branchmerge: True, force: False, partial: False
650 650 ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24
651 651 preserving b for resolve of b
652 652 preserving rev for resolve of rev
653 653 starting 4 threads for background file closing (?)
654 654 b: both created -> m (premerge)
655 655 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
656 656 merging b
657 657 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
658 658 rev: versions differ -> m (premerge)
659 659 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
660 660 merging rev
661 661 my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
662 662 b: both created -> m (merge)
663 663 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
664 664 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
665 665 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
666 666 merge tool returned: 0
667 667 rev: versions differ -> m (merge)
668 668 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
669 669 my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
670 670 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
671 671 merge tool returned: 0
672 672 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
673 673 (branch merge, don't forget to commit)
674 674 --------------
675 675 M b
676 676 C a
677 677 --------------
678 678
679 679 $ tm "nm a b" "up a b" " " "18 merge b no ancestor"
680 680 created new head
681 681 --------------
682 682 test L:nm a b R:up a b W: - 18 merge b no ancestor
683 683 --------------
684 684 searching for copies back to rev 1
685 685 unmatched files new in both:
686 686 b
687 687 resolving manifests
688 688 branchmerge: True, force: False, partial: False
689 689 ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a
690 690 preserving b for resolve of b
691 691 preserving rev for resolve of rev
692 692 starting 4 threads for background file closing (?)
693 693 a: prompt deleted/changed -> m (premerge)
694 694 picked tool ':prompt' for a (binary False symlink False changedelete True)
695 695 file 'a' was deleted in local [working copy] but was modified in other [merge rev].
696 696 What do you want to do?
697 697 use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
698 698 b: both created -> m (premerge)
699 699 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
700 700 merging b
701 701 my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
702 702 rev: versions differ -> m (premerge)
703 703 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
704 704 merging rev
705 705 my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
706 706 b: both created -> m (merge)
707 707 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
708 708 my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
709 709 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
710 710 merge tool returned: 0
711 711 rev: versions differ -> m (merge)
712 712 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
713 713 my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
714 714 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
715 715 merge tool returned: 0
716 716 0 files updated, 2 files merged, 0 files removed, 1 files unresolved
717 717 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
718 718 --------------
719 719 M a
720 720 M b
721 721 abort: unresolved merge conflicts (see 'hg help resolve')
722 722 --------------
723 723
724 724 $ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a"
725 725 created new head
726 726 --------------
727 727 test L:up a b R:nm a b W: - 19 merge b no ancestor, prompt remove a
728 728 --------------
729 729 searching for copies back to rev 1
730 730 unmatched files new in both:
731 731 b
732 732 resolving manifests
733 733 branchmerge: True, force: False, partial: False
734 734 ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a
735 735 preserving a for resolve of a
736 736 preserving b for resolve of b
737 737 preserving rev for resolve of rev
738 738 starting 4 threads for background file closing (?)
739 739 a: prompt changed/deleted -> m (premerge)
740 740 picked tool ':prompt' for a (binary False symlink False changedelete True)
741 741 file 'a' was deleted in other [merge rev] but was modified in local [working copy].
742 742 What do you want to do?
743 743 use (c)hanged version, (d)elete, or leave (u)nresolved? u
744 744 b: both created -> m (premerge)
745 745 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
746 746 merging b
747 747 my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
748 748 rev: versions differ -> m (premerge)
749 749 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
750 750 merging rev
751 751 my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
752 752 b: both created -> m (merge)
753 753 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
754 754 my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
755 755 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
756 756 merge tool returned: 0
757 757 rev: versions differ -> m (merge)
758 758 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
759 759 my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
760 760 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
761 761 merge tool returned: 0
762 762 0 files updated, 2 files merged, 0 files removed, 1 files unresolved
763 763 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
764 764 --------------
765 765 M b
766 766 C a
767 767 abort: unresolved merge conflicts (see 'hg help resolve')
768 768 --------------
769 769
770 770 $ tm "up a " "um a b" " " "20 merge a and b to b, remove a"
771 771 created new head
772 772 --------------
773 773 test L:up a R:um a b W: - 20 merge a and b to b, remove a
774 774 --------------
775 775 searching for copies back to rev 1
776 776 unmatched files in other:
777 777 b
778 778 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
779 779 src: 'a' -> dst: 'b' *
780 780 checking for directory renames
781 781 resolving manifests
782 782 branchmerge: True, force: False, partial: False
783 783 ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493
784 784 preserving a for resolve of b
785 785 preserving rev for resolve of rev
786 786 removing a
787 787 starting 4 threads for background file closing (?)
788 788 b: remote moved from a -> m (premerge)
789 789 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
790 790 merging a and b to b
791 791 my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337
792 792 rev: versions differ -> m (premerge)
793 793 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
794 794 merging rev
795 795 my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337
796 796 b: remote moved from a -> m (merge)
797 797 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
798 798 my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337
799 799 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
800 800 merge tool returned: 0
801 801 rev: versions differ -> m (merge)
802 802 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
803 803 my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337
804 804 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
805 805 merge tool returned: 0
806 806 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
807 807 (branch merge, don't forget to commit)
808 808 --------------
809 809 M b
810 810 a
811 811 --------------
812 812
813 813 $ tm "um a b" "up a " " " "21 merge a and b to b"
814 814 created new head
815 815 --------------
816 816 test L:um a b R:up a W: - 21 merge a and b to b
817 817 --------------
818 818 searching for copies back to rev 1
819 819 unmatched files in local:
820 820 b
821 821 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
822 822 src: 'a' -> dst: 'b' *
823 823 checking for directory renames
824 824 resolving manifests
825 825 branchmerge: True, force: False, partial: False
826 826 ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71
827 827 preserving b for resolve of b
828 828 preserving rev for resolve of rev
829 829 starting 4 threads for background file closing (?)
830 830 b: local copied/moved from a -> m (premerge)
831 831 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
832 832 merging b and a to b
833 833 my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337
834 834 rev: versions differ -> m (premerge)
835 835 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
836 836 merging rev
837 837 my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337
838 838 b: local copied/moved from a -> m (merge)
839 839 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
840 840 my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337
841 841 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
842 842 merge tool returned: 0
843 843 rev: versions differ -> m (merge)
844 844 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
845 845 my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337
846 846 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
847 847 merge tool returned: 0
848 848 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
849 849 (branch merge, don't forget to commit)
850 850 --------------
851 851 M b
852 852 a
853 853 --------------
854 854
855 855
856 856 m "nm a b" "um x a" " " "22 get a, keep b"
857 857
858 858 $ tm "nm a b" "up a c" " " "23 get c, keep b"
859 859 created new head
860 860 --------------
861 861 test L:nm a b R:up a c W: - 23 get c, keep b
862 862 --------------
863 863 searching for copies back to rev 1
864 864 unmatched files in local:
865 865 b
866 866 unmatched files in other:
867 867 c
868 868 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
869 869 src: 'a' -> dst: 'b' *
870 870 checking for directory renames
871 871 resolving manifests
872 872 branchmerge: True, force: False, partial: False
873 873 ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f
874 874 preserving b for resolve of b
875 875 preserving rev for resolve of rev
876 876 c: remote created -> g
877 877 getting c
878 878 b: local copied/moved from a -> m (premerge)
879 879 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
880 880 merging b and a to b
881 881 my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337
882 882 premerge successful
883 883 rev: versions differ -> m (premerge)
884 884 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
885 885 merging rev
886 886 my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337
887 887 rev: versions differ -> m (merge)
888 888 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
889 889 my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337
890 890 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
891 891 merge tool returned: 0
892 892 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
893 893 (branch merge, don't forget to commit)
894 894 --------------
895 895 M b
896 896 a
897 897 M c
898 898 --------------
899 899
900 900
901 901 $ cd ..
902 902
903 903
904 904 Systematic and terse testing of merge merges and ancestor calculation:
905 905
906 906 Expected result:
907 907
908 908 \ a m1 m2 dst
909 909 0 - f f f "versions differ"
910 910 1 f g g g "versions differ"
911 911 2 f f f f "versions differ"
912 912 3 f f g f+g "remote copied to " + f
913 913 4 f f g g "remote moved to " + f
914 914 5 f g f f+g "local copied to " + f2
915 915 6 f g f g "local moved to " + f2
916 916 7 - (f) f f "remote differs from untracked local"
917 917 8 f (f) f f "remote differs from untracked local"
918 918
919 919 $ hg init ancestortest
920 920 $ cd ancestortest
921 921 $ for x in 1 2 3 4 5 6 8; do mkdir $x; echo a > $x/f; done
922 922 $ hg ci -Aqm "a"
923 923 $ mkdir 0
924 924 $ touch 0/f
925 925 $ hg mv 1/f 1/g
926 926 $ hg cp 5/f 5/g
927 927 $ hg mv 6/f 6/g
928 928 $ hg rm 8/f
929 929 $ for x in */*; do echo m1 > $x; done
930 930 $ hg ci -Aqm "m1"
931 931 $ hg up -qr0
932 932 $ mkdir 0 7
933 933 $ touch 0/f 7/f
934 934 $ hg mv 1/f 1/g
935 935 $ hg cp 3/f 3/g
936 936 $ hg mv 4/f 4/g
937 937 $ for x in */*; do echo m2 > $x; done
938 938 $ hg ci -Aqm "m2"
939 939 $ hg up -qr1
940 940 $ mkdir 7 8
941 941 $ echo m > 7/f
942 942 $ echo m > 8/f
943 943 $ hg merge -f --tool internal:dump -v --debug -r2 | sed '/^resolving manifests/,$d' 2> /dev/null
944 944 searching for copies back to rev 1
945 945 unmatched files in local:
946 946 5/g
947 947 6/g
948 948 unmatched files in other:
949 949 3/g
950 950 4/g
951 951 7/f
952 952 unmatched files new in both:
953 953 0/f
954 954 1/g
955 955 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
956 956 src: '3/f' -> dst: '3/g' *
957 957 src: '4/f' -> dst: '4/g' *
958 958 src: '5/f' -> dst: '5/g' *
959 959 src: '6/f' -> dst: '6/g' *
960 960 checking for directory renames
961 961 $ hg mani
962 962 0/f
963 963 1/g
964 964 2/f
965 965 3/f
966 966 4/f
967 967 5/f
968 968 5/g
969 969 6/g
970 970 $ for f in */*; do echo $f:; cat $f; done
971 971 0/f:
972 972 m1
973 973 0/f.base:
974 974 0/f.local:
975 975 m1
976 976 0/f.orig:
977 977 m1
978 978 0/f.other:
979 979 m2
980 980 1/g:
981 981 m1
982 982 1/g.base:
983 983 a
984 984 1/g.local:
985 985 m1
986 986 1/g.orig:
987 987 m1
988 988 1/g.other:
989 989 m2
990 990 2/f:
991 991 m1
992 992 2/f.base:
993 993 a
994 994 2/f.local:
995 995 m1
996 996 2/f.orig:
997 997 m1
998 998 2/f.other:
999 999 m2
1000 1000 3/f:
1001 1001 m1
1002 1002 3/f.base:
1003 1003 a
1004 1004 3/f.local:
1005 1005 m1
1006 1006 3/f.orig:
1007 1007 m1
1008 1008 3/f.other:
1009 1009 m2
1010 1010 3/g:
1011 1011 m1
1012 1012 3/g.base:
1013 1013 a
1014 1014 3/g.local:
1015 1015 m1
1016 1016 3/g.orig:
1017 1017 m1
1018 1018 3/g.other:
1019 1019 m2
1020 1020 4/g:
1021 1021 m1
1022 1022 4/g.base:
1023 1023 a
1024 1024 4/g.local:
1025 1025 m1
1026 1026 4/g.orig:
1027 1027 m1
1028 1028 4/g.other:
1029 1029 m2
1030 1030 5/f:
1031 1031 m1
1032 1032 5/f.base:
1033 1033 a
1034 1034 5/f.local:
1035 1035 m1
1036 1036 5/f.orig:
1037 1037 m1
1038 1038 5/f.other:
1039 1039 m2
1040 1040 5/g:
1041 1041 m1
1042 1042 5/g.base:
1043 1043 a
1044 1044 5/g.local:
1045 1045 m1
1046 1046 5/g.orig:
1047 1047 m1
1048 1048 5/g.other:
1049 1049 m2
1050 1050 6/g:
1051 1051 m1
1052 1052 6/g.base:
1053 1053 a
1054 1054 6/g.local:
1055 1055 m1
1056 1056 6/g.orig:
1057 1057 m1
1058 1058 6/g.other:
1059 1059 m2
1060 1060 7/f:
1061 1061 m
1062 1062 7/f.base:
1063 1063 7/f.local:
1064 1064 m
1065 1065 7/f.orig:
1066 1066 m
1067 1067 7/f.other:
1068 1068 m2
1069 1069 8/f:
1070 1070 m2
1071 1071 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now