comparison tests/test-copies-chain-merge.t @ 44460:c8fd21413458

copies-tests: add a case where with merge with an overwritten files This is similar to the BF/FB case, but in this case, the other branch updated the file. So an actual merge happens and the two "independant" file history has to be merged. Differential Revision: https://phab.mercurial-scm.org/D8242
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 03 Mar 2020 15:56:00 +0100
parents 6f1f4a6f4168
children 25d97090c6ca
comparison
equal deleted inserted replaced
44459:6f1f4a6f4168 44460:c8fd21413458
379 | o 25 g-1: update d] 379 | o 25 g-1: update d]
380 | | 380 | |
381 o | 14 d-2 re-add d] 381 o | 14 d-2 re-add d]
382 | | 382 | |
383 o | 13 d-1 delete d] 383 o | 13 d-1 delete d]
384 |/
385 o 2 i-2: c -move-> d]
386 |
387 o 1 i-1: a -move-> c]
388 |
389 o 0 i-0 initial commit: a b h]
390
391
392
393 Merge:
394 - one with change to a file (d)
395 - one overwriting that file with a rename (from h to i, to d)
396
397 $ hg up 'desc("f-2")'
398 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
399 $ hg merge 'desc("g-1")' --tool :union
400 merging d
401 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
402 (branch merge, don't forget to commit)
403 $ hg ci -m 'mFGm-0 simple merge - one way'
404 created new head
405 $ hg up 'desc("g-1")'
406 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
407 $ hg merge 'desc("f-2")' --tool :union
408 merging d
409 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
410 (branch merge, don't forget to commit)
411 $ hg ci -m 'mGFm-0 simple merge - the other way'
412 created new head
413 $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
414 @ 29 mGFm-0 simple merge - the other way]
415 |\
416 +---o 28 mFGm-0 simple merge - one way]
417 | |/
418 | o 25 g-1: update d]
419 | |
420 o | 22 f-2: rename i -> d]
421 | |
422 o | 21 f-1: rename h -> i]
384 |/ 423 |/
385 o 2 i-2: c -move-> d] 424 o 2 i-2: c -move-> d]
386 | 425 |
387 o 1 i-1: a -move-> c] 426 o 1 i-1: a -move-> c]
388 | 427 |
542 3 22 c72365ee036f 000000000000 000000000000 581 3 22 c72365ee036f 000000000000 000000000000
543 4 23 863d9bc49190 01c2f5eabdc4 c72365ee036f 582 4 23 863d9bc49190 01c2f5eabdc4 c72365ee036f
544 5 25 7bded9d9da1f 01c2f5eabdc4 000000000000 583 5 25 7bded9d9da1f 01c2f5eabdc4 000000000000
545 6 26 f04cac32d703 b004912a8510 7bded9d9da1f 584 6 26 f04cac32d703 b004912a8510 7bded9d9da1f
546 7 27 d7a5eafb9322 7bded9d9da1f b004912a8510 585 7 27 d7a5eafb9322 7bded9d9da1f b004912a8510
586 8 28 2ed7a51aed47 c72365ee036f 7bded9d9da1f
547 587
548 (This `hg log` output if wrong, since no merge actually happened). 588 (This `hg log` output if wrong, since no merge actually happened).
549 589
550 $ hg log -Gfr 'desc("mBDm-0")' d 590 $ hg log -Gfr 'desc("mBDm-0")' d
551 o 15 mBDm-0 simple merge - one way] 591 o 15 mBDm-0 simple merge - one way]
751 | 791 |
752 o 1 i-1: a -move-> c] 792 o 1 i-1: a -move-> c]
753 | 793 |
754 o 0 i-0 initial commit: a b h] 794 o 0 i-0 initial commit: a b h]
755 795
796
797
798 Merge:
799 - one with change to a file (d)
800 - one overwriting that file with a rename (from h to i, to d)
801
802 This case is similar to BF/FB, but an actual merge happens, so both side of the
803 history are relevant.
804
805 Note:
806 | In this case, the merge get conflicting information since on one side we have
807 | "a -> c -> d". and one the other one we have "h -> i -> d".
808 |
809 | The current code arbitrarily pick one side
810
811 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFGm-0")'
812 A d
813 a
814 R a
815 R h
816 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGFm-0")'
817 A d
818 a
819 R a
820 R h
821 $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
822 M d
823 $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mGFm-0")'
824 M d
825 $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mFGm-0")'
826 M d
827 R i
828 $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mGFm-0")'
829 M d
830 R i
831 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mFGm-0")'
832 M d
833 R h
834 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGFm-0")'
835 M d
836 R h
837
838 $ hg log -Gfr 'desc("mFGm-0")' d
839 o 28 mFGm-0 simple merge - one way]
840 |\
841 | o 25 g-1: update d]
842 | |
843 o | 22 f-2: rename i -> d]
844 | |
845 o | 21 f-1: rename h -> i]
846 |/
847 o 2 i-2: c -move-> d]
848 |
849 o 1 i-1: a -move-> c]
850 |
851 o 0 i-0 initial commit: a b h]
852
853
854
855 $ hg log -Gfr 'desc("mGFm-0")' d
856 @ 29 mGFm-0 simple merge - the other way]
857 |\
858 | o 25 g-1: update d]
859 | |
860 o | 22 f-2: rename i -> d]
861 | |
862 o | 21 f-1: rename h -> i]
863 |/
864 o 2 i-2: c -move-> d]
865 |
866 o 1 i-1: a -move-> c]
867 |
868 o 0 i-0 initial commit: a b h]
869