##// END OF EJS Templates
tests: add few debugrevlogindex and a log call to see changes in next test...
Pulkit Goyal -
r46155:76b69f81 default
parent child Browse files
Show More
@@ -1,705 +1,747 b''
1 1 #testcases old newfilenode
2 2
3 3 #if newfilenode
4 4 Enable the config option
5 5 ------------------------
6 6
7 7 $ cat >> $HGRCPATH <<EOF
8 8 > [experimental]
9 9 > merge-track-salvaged = True
10 10 > EOF
11 11 #endif
12 12
13 13 Criss cross merging
14 14
15 15 $ hg init criss-cross
16 16 $ cd criss-cross
17 17 $ echo '0 base' > f1
18 18 $ echo '0 base' > f2
19 19 $ hg ci -Aqm '0 base'
20 20
21 21 $ echo '1 first change' > f1
22 22 $ hg ci -m '1 first change f1'
23 23
24 24 $ hg up -qr0
25 25 $ echo '2 first change' > f2
26 26 $ hg ci -qm '2 first change f2'
27 27
28 28 $ hg merge -qr 1
29 29 $ hg ci -m '3 merge'
30 30
31 31 $ hg up -qr2
32 32 $ hg merge -qr1
33 33 $ hg ci -qm '4 merge'
34 34
35 35 $ echo '5 second change' > f1
36 36 $ hg ci -m '5 second change f1'
37 37
38 38 $ hg up -r3
39 39 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
40 40 $ echo '6 second change' > f2
41 41 $ hg ci -m '6 second change f2'
42 42
43 43 $ hg log -G
44 44 @ changeset: 6:3b08d01b0ab5
45 45 | tag: tip
46 46 | parent: 3:cf89f02107e5
47 47 | user: test
48 48 | date: Thu Jan 01 00:00:00 1970 +0000
49 49 | summary: 6 second change f2
50 50 |
51 51 | o changeset: 5:adfe50279922
52 52 | | user: test
53 53 | | date: Thu Jan 01 00:00:00 1970 +0000
54 54 | | summary: 5 second change f1
55 55 | |
56 56 | o changeset: 4:7d3e55501ae6
57 57 | |\ parent: 2:40663881a6dd
58 58 | | | parent: 1:0f6b37dbe527
59 59 | | | user: test
60 60 | | | date: Thu Jan 01 00:00:00 1970 +0000
61 61 | | | summary: 4 merge
62 62 | | |
63 63 o---+ changeset: 3:cf89f02107e5
64 64 | | | parent: 2:40663881a6dd
65 65 |/ / parent: 1:0f6b37dbe527
66 66 | | user: test
67 67 | | date: Thu Jan 01 00:00:00 1970 +0000
68 68 | | summary: 3 merge
69 69 | |
70 70 | o changeset: 2:40663881a6dd
71 71 | | parent: 0:40494bf2444c
72 72 | | user: test
73 73 | | date: Thu Jan 01 00:00:00 1970 +0000
74 74 | | summary: 2 first change f2
75 75 | |
76 76 o | changeset: 1:0f6b37dbe527
77 77 |/ user: test
78 78 | date: Thu Jan 01 00:00:00 1970 +0000
79 79 | summary: 1 first change f1
80 80 |
81 81 o changeset: 0:40494bf2444c
82 82 user: test
83 83 date: Thu Jan 01 00:00:00 1970 +0000
84 84 summary: 0 base
85 85
86 86
87 87 $ hg merge -v --debug --tool internal:dump 5 --config merge.preferancestor='!'
88 88 note: using 0f6b37dbe527 as ancestor of 3b08d01b0ab5 and adfe50279922
89 89 alternatively, use --config merge.preferancestor=40663881a6dd
90 90 resolving manifests
91 91 branchmerge: True, force: False, partial: False
92 92 ancestor: 0f6b37dbe527, local: 3b08d01b0ab5+, remote: adfe50279922
93 93 f1: remote is newer -> g
94 94 getting f1
95 95 preserving f2 for resolve of f2
96 96 f2: versions differ -> m (premerge)
97 97 picked tool ':dump' for f2 (binary False symlink False changedelete False)
98 98 merging f2
99 99 my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@0f6b37dbe527
100 100 f2: versions differ -> m (merge)
101 101 picked tool ':dump' for f2 (binary False symlink False changedelete False)
102 102 my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@0f6b37dbe527
103 103 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
104 104 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
105 105 [1]
106 106
107 107 $ f --dump *
108 108 f1:
109 109 >>>
110 110 5 second change
111 111 <<<
112 112 f2:
113 113 >>>
114 114 6 second change
115 115 <<<
116 116 f2.base:
117 117 >>>
118 118 0 base
119 119 <<<
120 120 f2.local:
121 121 >>>
122 122 6 second change
123 123 <<<
124 124 f2.orig:
125 125 >>>
126 126 6 second change
127 127 <<<
128 128 f2.other:
129 129 >>>
130 130 2 first change
131 131 <<<
132 132
133 133 $ hg up -qC .
134 134 $ hg merge -v --tool internal:dump 5 --config merge.preferancestor="null 40663881 3b08d"
135 135 note: using 40663881a6dd as ancestor of 3b08d01b0ab5 and adfe50279922
136 136 alternatively, use --config merge.preferancestor=0f6b37dbe527
137 137 resolving manifests
138 138 merging f1
139 139 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
140 140 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
141 141 [1]
142 142
143 143 Redo merge with merge.preferancestor="*" to enable bid merge
144 144
145 145 $ rm f*
146 146 $ hg up -qC .
147 147 $ hg merge -v --debug --tool internal:dump 5 --config merge.preferancestor="*"
148 148 note: merging 3b08d01b0ab5+ and adfe50279922 using bids from ancestors 0f6b37dbe527 and 40663881a6dd
149 149
150 150 calculating bids for ancestor 0f6b37dbe527
151 151 resolving manifests
152 152 branchmerge: True, force: False, partial: False
153 153 ancestor: 0f6b37dbe527, local: 3b08d01b0ab5+, remote: adfe50279922
154 154 f1: remote is newer -> g
155 155 f2: versions differ -> m
156 156
157 157 calculating bids for ancestor 40663881a6dd
158 158 resolving manifests
159 159 branchmerge: True, force: False, partial: False
160 160 ancestor: 40663881a6dd, local: 3b08d01b0ab5+, remote: adfe50279922
161 161 f1: versions differ -> m
162 162 f2: remote unchanged -> k
163 163
164 164 auction for merging merge bids (2 ancestors)
165 165 list of bids for f1:
166 166 remote is newer -> g
167 167 versions differ -> m
168 168 f1: picking 'get' action
169 169 list of bids for f2:
170 170 remote unchanged -> k
171 171 versions differ -> m
172 172 f2: picking 'keep' action
173 173 end of auction
174 174
175 175 f1: remote is newer -> g
176 176 getting f1
177 177 f2: remote unchanged -> k
178 178 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
179 179 (branch merge, don't forget to commit)
180 180
181 181 $ f --dump *
182 182 f1:
183 183 >>>
184 184 5 second change
185 185 <<<
186 186 f2:
187 187 >>>
188 188 6 second change
189 189 <<<
190 190
191 191
192 192 The other way around:
193 193
194 194 $ hg up -C -r5
195 195 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
196 196 $ hg merge -v --debug --config merge.preferancestor="*"
197 197 note: merging adfe50279922+ and 3b08d01b0ab5 using bids from ancestors 0f6b37dbe527 and 40663881a6dd
198 198
199 199 calculating bids for ancestor 0f6b37dbe527
200 200 resolving manifests
201 201 branchmerge: True, force: False, partial: False
202 202 ancestor: 0f6b37dbe527, local: adfe50279922+, remote: 3b08d01b0ab5
203 203 f1: remote unchanged -> k
204 204 f2: versions differ -> m
205 205
206 206 calculating bids for ancestor 40663881a6dd
207 207 resolving manifests
208 208 branchmerge: True, force: False, partial: False
209 209 ancestor: 40663881a6dd, local: adfe50279922+, remote: 3b08d01b0ab5
210 210 f1: versions differ -> m
211 211 f2: remote is newer -> g
212 212
213 213 auction for merging merge bids (2 ancestors)
214 214 list of bids for f1:
215 215 remote unchanged -> k
216 216 versions differ -> m
217 217 f1: picking 'keep' action
218 218 list of bids for f2:
219 219 remote is newer -> g
220 220 versions differ -> m
221 221 f2: picking 'get' action
222 222 end of auction
223 223
224 224 f2: remote is newer -> g
225 225 getting f2
226 226 f1: remote unchanged -> k
227 227 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
228 228 (branch merge, don't forget to commit)
229 229
230 230 $ f --dump *
231 231 f1:
232 232 >>>
233 233 5 second change
234 234 <<<
235 235 f2:
236 236 >>>
237 237 6 second change
238 238 <<<
239 239
240 240 Verify how the output looks and and how verbose it is:
241 241
242 242 $ hg up -qC
243 243 $ hg merge
244 244 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
245 245 (branch merge, don't forget to commit)
246 246
247 247 $ hg up -qC tip
248 248 $ hg merge -v
249 249 note: merging 3b08d01b0ab5+ and adfe50279922 using bids from ancestors 0f6b37dbe527 and 40663881a6dd
250 250
251 251 calculating bids for ancestor 0f6b37dbe527
252 252 resolving manifests
253 253
254 254 calculating bids for ancestor 40663881a6dd
255 255 resolving manifests
256 256
257 257 auction for merging merge bids (2 ancestors)
258 258 f1: picking 'get' action
259 259 f2: picking 'keep' action
260 260 end of auction
261 261
262 262 getting f1
263 263 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
264 264 (branch merge, don't forget to commit)
265 265
266 266 $ hg up -qC
267 267 $ hg merge -v --debug --config merge.preferancestor="*"
268 268 note: merging 3b08d01b0ab5+ and adfe50279922 using bids from ancestors 0f6b37dbe527 and 40663881a6dd
269 269
270 270 calculating bids for ancestor 0f6b37dbe527
271 271 resolving manifests
272 272 branchmerge: True, force: False, partial: False
273 273 ancestor: 0f6b37dbe527, local: 3b08d01b0ab5+, remote: adfe50279922
274 274 f1: remote is newer -> g
275 275 f2: versions differ -> m
276 276
277 277 calculating bids for ancestor 40663881a6dd
278 278 resolving manifests
279 279 branchmerge: True, force: False, partial: False
280 280 ancestor: 40663881a6dd, local: 3b08d01b0ab5+, remote: adfe50279922
281 281 f1: versions differ -> m
282 282 f2: remote unchanged -> k
283 283
284 284 auction for merging merge bids (2 ancestors)
285 285 list of bids for f1:
286 286 remote is newer -> g
287 287 versions differ -> m
288 288 f1: picking 'get' action
289 289 list of bids for f2:
290 290 remote unchanged -> k
291 291 versions differ -> m
292 292 f2: picking 'keep' action
293 293 end of auction
294 294
295 295 f1: remote is newer -> g
296 296 getting f1
297 297 f2: remote unchanged -> k
298 298 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
299 299 (branch merge, don't forget to commit)
300 300
301 301 Test the greatest common ancestor returning multiple changesets
302 302
303 303 $ hg log -r 'heads(commonancestors(head()))'
304 304 changeset: 1:0f6b37dbe527
305 305 user: test
306 306 date: Thu Jan 01 00:00:00 1970 +0000
307 307 summary: 1 first change f1
308 308
309 309 changeset: 2:40663881a6dd
310 310 parent: 0:40494bf2444c
311 311 user: test
312 312 date: Thu Jan 01 00:00:00 1970 +0000
313 313 summary: 2 first change f2
314 314
315 315
316 316 $ cd ..
317 317
318 318 http://stackoverflow.com/questions/9350005/how-do-i-specify-a-merge-base-to-use-in-a-hg-merge/9430810
319 319
320 320 $ hg init ancestor-merging
321 321 $ cd ancestor-merging
322 322 $ echo a > x
323 323 $ hg commit -A -m a x
324 324 $ hg update -q 0
325 325 $ echo b >> x
326 326 $ hg commit -m b
327 327 $ hg update -q 0
328 328 $ echo c >> x
329 329 $ hg commit -qm c
330 330 $ hg update -q 1
331 331 $ hg merge -q --tool internal:local 2
332 332 $ echo c >> x
333 333 $ hg commit -m bc
334 334 $ hg update -q 2
335 335 $ hg merge -q --tool internal:local 1
336 336 $ echo b >> x
337 337 $ hg commit -qm cb
338 338
339 339 $ hg merge --config merge.preferancestor='!'
340 340 note: using 70008a2163f6 as ancestor of 0d355fdef312 and 4b8b546a3eef
341 341 alternatively, use --config merge.preferancestor=b211bbc6eb3c
342 342 merging x
343 343 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
344 344 (branch merge, don't forget to commit)
345 345 $ cat x
346 346 a
347 347 c
348 348 b
349 349 c
350 350
351 351 $ hg up -qC .
352 352
353 353 $ hg merge --config merge.preferancestor=b211bbc6eb3c
354 354 note: using b211bbc6eb3c as ancestor of 0d355fdef312 and 4b8b546a3eef
355 355 alternatively, use --config merge.preferancestor=70008a2163f6
356 356 merging x
357 357 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
358 358 (branch merge, don't forget to commit)
359 359 $ cat x
360 360 a
361 361 b
362 362 c
363 363 b
364 364
365 365 $ hg up -qC .
366 366
367 367 $ hg merge -v --config merge.preferancestor="*"
368 368 note: merging 0d355fdef312+ and 4b8b546a3eef using bids from ancestors 70008a2163f6 and b211bbc6eb3c
369 369
370 370 calculating bids for ancestor 70008a2163f6
371 371 resolving manifests
372 372
373 373 calculating bids for ancestor b211bbc6eb3c
374 374 resolving manifests
375 375
376 376 auction for merging merge bids (2 ancestors)
377 377 x: multiple bids for merge action:
378 378 versions differ -> m
379 379 versions differ -> m
380 380 x: ambiguous merge - picked m action
381 381 end of auction
382 382
383 383 merging x
384 384 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
385 385 (branch merge, don't forget to commit)
386 386 $ cat x
387 387 a
388 388 c
389 389 b
390 390 c
391 391
392 392 Verify that the old context ancestor works with / despite preferancestor:
393 393
394 394 $ hg log -r 'ancestor(head())' --config merge.preferancestor=1 -T '{rev}\n'
395 395 1
396 396 $ hg log -r 'ancestor(head())' --config merge.preferancestor=2 -T '{rev}\n'
397 397 2
398 398 $ hg log -r 'ancestor(head())' --config merge.preferancestor=3 -T '{rev}\n'
399 399 1
400 400 $ hg log -r 'ancestor(head())' --config merge.preferancestor='1337 * - 2' -T '{rev}\n'
401 401 2
402 402
403 403 $ cd ..
404 404
405 405 $ hg init issue5020
406 406 $ cd issue5020
407 407
408 408 $ echo a > noop
409 409 $ hg ci -qAm initial
410 410
411 411 $ echo b > noop
412 412 $ hg ci -qAm 'uninteresting change'
413 413
414 414 $ hg up -q 0
415 415 $ mkdir d1
416 416 $ echo a > d1/a
417 417 $ echo b > d1/b
418 418 $ hg ci -qAm 'add d1/a and d1/b'
419 419
420 420 $ hg merge -q 1
421 421 $ hg rm d1/a
422 422 $ hg mv -q d1 d2
423 423 $ hg ci -qm 'merge while removing d1/a and moving d1/b to d2/b'
424 424
425 425 $ hg up -q 1
426 426 $ hg merge -q 2
427 427 $ hg ci -qm 'merge (no changes while merging)'
428 428 $ hg log -G -T '{rev}:{node|short} {desc}'
429 429 @ 4:c0ef19750a22 merge (no changes while merging)
430 430 |\
431 431 +---o 3:6ca01f7342b9 merge while removing d1/a and moving d1/b to d2/b
432 432 | |/
433 433 | o 2:154e6000f54e add d1/a and d1/b
434 434 | |
435 435 o | 1:11b5b303e36c uninteresting change
436 436 |/
437 437 o 0:7b54db1ebf33 initial
438 438
439 439 $ hg merge 3 --debug
440 440 note: merging c0ef19750a22+ and 6ca01f7342b9 using bids from ancestors 11b5b303e36c and 154e6000f54e
441 441
442 442 calculating bids for ancestor 11b5b303e36c
443 443 resolving manifests
444 444 branchmerge: True, force: False, partial: False
445 445 ancestor: 11b5b303e36c, local: c0ef19750a22+, remote: 6ca01f7342b9
446 446 d1/a: ancestor missing, remote missing -> kn
447 447 d1/b: ancestor missing, remote missing -> kn
448 448 d2/b: remote created -> g
449 449
450 450 calculating bids for ancestor 154e6000f54e
451 451 unmatched files in other:
452 452 d2/b
453 453 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
454 454 on remote side:
455 455 src: 'd1/b' -> dst: 'd2/b'
456 456 checking for directory renames
457 457 discovered dir src: 'd1/' -> dst: 'd2/'
458 458 resolving manifests
459 459 branchmerge: True, force: False, partial: False
460 460 ancestor: 154e6000f54e, local: c0ef19750a22+, remote: 6ca01f7342b9
461 461 d1/a: other deleted -> r
462 462 d1/b: other deleted -> r
463 463 d2/b: remote created -> g
464 464
465 465 auction for merging merge bids (2 ancestors)
466 466 list of bids for d1/a:
467 467 ancestor missing, remote missing -> kn
468 468 other deleted -> r
469 469 d1/a: picking 'keep new' action
470 470 list of bids for d1/b:
471 471 ancestor missing, remote missing -> kn
472 472 other deleted -> r
473 473 d1/b: picking 'keep new' action
474 474 list of bids for d2/b:
475 475 remote created -> g
476 476 remote created -> g
477 477 d2/b: consensus for g
478 478 end of auction
479 479
480 480 d2/b: remote created -> g
481 481 getting d2/b
482 482 d1/a: ancestor missing, remote missing -> kn
483 483 d1/b: ancestor missing, remote missing -> kn
484 484 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
485 485 (branch merge, don't forget to commit)
486 486
487 487
488 488 Check that removal reversion does not go unotified
489 489 ==================================================
490 490
491 491 On a merge, a file can be removed and user can revert that removal. This means
492 492 user has made an explicit choice of keeping the file or reverting the removal
493 493 even though the merge algo wanted to remove it.
494 494 Based on this, when we do criss cross merges, merge algorithm should not again
495 495 choose to remove the file as in one of the merges, user made an explicit choice
496 496 to revert the removal.
497 497 Following test cases demonstrate how merge algo does not take in account
498 498 explicit choices made by users to revert the removal and on criss-cross merging
499 499 removes the file again.
500 500
501 501 "Simple" case where the filenode changes
502 502 ----------------------------------------
503 503
504 504 $ cd ..
505 505 $ hg init criss-cross-merge-reversal-with-update
506 506 $ cd criss-cross-merge-reversal-with-update
507 507 $ echo the-file > the-file
508 508 $ echo other-file > other-file
509 509 $ hg add the-file other-file
510 510 $ hg ci -m 'root-commit'
511 511 $ echo foo >> the-file
512 512 $ echo bar >> other-file
513 513 $ hg ci -m 'updating-both-file'
514 514 $ hg up 'desc("root-commit")'
515 515 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
516 516 $ hg rm the-file
517 517 $ hg ci -m 'delete-the-file'
518 518 created new head
519 519 $ hg log -G -T '{node|short} {desc}\n'
520 520 @ 7801bc9b9899 delete-the-file
521 521 |
522 522 | o 9b610631ab29 updating-both-file
523 523 |/
524 524 o 955800955977 root-commit
525 525
526 526
527 527 Do all the merge combination (from the deleted or the update side Γ— keeping and deleting the file
528 528
529 529 $ hg update 'desc("delete-the-file")'
530 530 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
531 531 $ hg merge 'desc("updating-both-file")' -t :local
532 532 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
533 533 (branch merge, don't forget to commit)
534 534 $ hg ci -m "merge-deleting-the-file-from-deleted"
535 535 $ hg manifest
536 536 other-file
537 $ hg debugrevlogindex the-file
538 rev linkrev nodeid p1 p2
539 0 0 4b69178b9bda 000000000000 000000000000
540 1 1 59e363a07dc8 4b69178b9bda 000000000000
537 541
538 542 $ hg update 'desc("updating-both-file")'
539 543 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
540 544 $ hg merge 'desc("delete-the-file")' -t :other
541 545 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
542 546 (branch merge, don't forget to commit)
543 547 $ hg ci -m "merge-deleting-the-file-from-updated"
544 548 created new head
545 549 $ hg manifest
546 550 other-file
551 $ hg debugrevlogindex the-file
552 rev linkrev nodeid p1 p2
553 0 0 4b69178b9bda 000000000000 000000000000
554 1 1 59e363a07dc8 4b69178b9bda 000000000000
547 555
548 556 $ hg update 'desc("delete-the-file")'
549 557 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
550 558 $ hg merge 'desc("updating-both-file")' -t :other
551 559 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
552 560 (branch merge, don't forget to commit)
553 561 $ hg ci -m "merge-keeping-the-file-from-deleted"
554 562 created new head
555 563 $ hg manifest
556 564 other-file
557 565 the-file
558 566
567 XXX: This should create a new filenode because user explicitly decided to keep
568 the file. If we reuse the same filenode, future merges (criss-cross ones mostly)
569 will think that file remain unchanged and user explicit choice will not be taken
570 in consideration.
571 $ hg debugrevlogindex the-file
572 rev linkrev nodeid p1 p2
573 0 0 4b69178b9bda 000000000000 000000000000
574 1 1 59e363a07dc8 4b69178b9bda 000000000000
575
559 576 $ hg update 'desc("updating-both-file")'
560 577 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
561 578 $ hg merge 'desc("delete-the-file")' -t :local
562 579 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
563 580 (branch merge, don't forget to commit)
564 581 $ hg ci -m "merge-keeping-the-file-from-updated"
565 582 created new head
566 583 $ hg manifest
567 584 other-file
568 585 the-file
569 586
587 XXX: This should create a new filenode because user explicitly decided to keep
588 the file. If we reuse the same filenode, future merges (criss-cross ones mostly)
589 will think that file remain unchanged and user explicit choice will not be taken
590 in consideration.
591 $ hg debugrevlogindex the-file
592 rev linkrev nodeid p1 p2
593 0 0 4b69178b9bda 000000000000 000000000000
594 1 1 59e363a07dc8 4b69178b9bda 000000000000
595
596 $ hg log -G -T '{node|short} {desc}\n'
597 @ 5e3eccec60d8 merge-keeping-the-file-from-updated
598 |\
599 +---o e9b708131723 merge-keeping-the-file-from-deleted
600 | |/
601 +---o a4e0e44229dc merge-deleting-the-file-from-updated
602 | |/
603 +---o adfd88e5d7d3 merge-deleting-the-file-from-deleted
604 | |/
605 | o 7801bc9b9899 delete-the-file
606 | |
607 o | 9b610631ab29 updating-both-file
608 |/
609 o 955800955977 root-commit
610
611
570 612 There the resulting merge together (leading to criss cross situation). Check
571 613 the conflict is properly detected.
572 614
573 615 (merging two deletion together β†’ no conflict)
574 616
575 617 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
576 618 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
577 619 $ hg merge 'desc("merge-deleting-the-file-from-updated")'
578 620 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
579 621 (branch merge, don't forget to commit)
580 622 $ ls -1
581 623 other-file
582 624
583 625 (merging a deletion with keeping β†’ conflict)
584 626 BROKEN: this should result in conflict
585 627
586 628 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
587 629 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
588 630 $ hg merge 'desc("merge-keeping-the-file-from-deleted")'
589 631 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
590 632 (branch merge, don't forget to commit)
591 633 $ ls -1
592 634 other-file
593 635
594 636 (merging a deletion with keeping β†’ conflict)
595 637 BROKEN: this should result in conflict
596 638
597 639 $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
598 640 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
599 641 $ hg merge 'desc("merge-keeping-the-file-from-updated")'
600 642 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
601 643 (branch merge, don't forget to commit)
602 644 $ ls -1
603 645 other-file
604 646
605 647 (merging two deletion together β†’ no conflict)
606 648
607 649 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
608 650 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
609 651 $ hg merge 'desc("merge-deleting-the-file-from-deleted")'
610 652 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
611 653 (branch merge, don't forget to commit)
612 654 $ ls -1
613 655 other-file
614 656
615 657 (merging a deletion with keeping β†’ conflict)
616 658 BROKEN: this should result in conflict
617 659
618 660 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
619 661 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
620 662 $ hg merge 'desc("merge-keeping-the-file-from-deleted")'
621 663 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
622 664 (branch merge, don't forget to commit)
623 665 $ ls -1
624 666 other-file
625 667
626 668 (merging a deletion with keeping β†’ conflict)
627 669 BROKEN: this should result in conflict
628 670
629 671 $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
630 672 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
631 673 $ hg merge 'desc("merge-keeping-the-file-from-updated")'
632 674 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
633 675 (branch merge, don't forget to commit)
634 676 $ ls -1
635 677 other-file
636 678
637 679 (merging two "keeping" together β†’ no conflict)
638 680
639 681 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
640 682 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
641 683 $ hg merge 'desc("merge-keeping-the-file-from-deleted")'
642 684 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
643 685 (branch merge, don't forget to commit)
644 686 $ ls -1
645 687 other-file
646 688 the-file
647 689
648 690 (merging a deletion with keeping β†’ conflict)
649 691 BROKEN: this should result in conflict
650 692
651 693 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
652 694 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
653 695 $ hg merge 'desc("merge-deleted-the-file-from-deleted")'
654 696 abort: empty revision set
655 697 [255]
656 698 $ ls -1
657 699 other-file
658 700 the-file
659 701
660 702 (merging a deletion with keeping β†’ conflict)
661 703 BROKEN: this should result in conflict
662 704
663 705 $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
664 706 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
665 707 $ hg merge 'desc("merge-deleting-the-file-from-updated")'
666 708 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
667 709 (branch merge, don't forget to commit)
668 710 $ ls -1
669 711 other-file
670 712 the-file
671 713
672 714 (merging two "keeping" together β†’ no conflict)
673 715
674 716 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
675 717 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
676 718 $ hg merge 'desc("merge-keeping-the-file-from-updated")'
677 719 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
678 720 (branch merge, don't forget to commit)
679 721 $ ls -1
680 722 other-file
681 723 the-file
682 724
683 725 (merging a deletion with keeping β†’ conflict)
684 726 BROKEN: this should result in conflict
685 727
686 728 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
687 729 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
688 730 $ hg merge 'desc("merge-deleted-the-file-from-deleted")'
689 731 abort: empty revision set
690 732 [255]
691 733 $ ls -1
692 734 other-file
693 735 the-file
694 736
695 737 (merging a deletion with keeping β†’ conflict)
696 738 BROKEN: this should result in conflict
697 739
698 740 $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
699 741 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
700 742 $ hg merge 'desc("merge-deleting-the-file-from-updated")'
701 743 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
702 744 (branch merge, don't forget to commit)
703 745 $ ls -1
704 746 other-file
705 747 the-file
General Comments 0
You need to be logged in to leave comments. Login now