comparison tests/test-rename-merge2.t @ 27137:25e4b2f000c5

merge: move almost all change/delete conflicts to resolve phase (BC) (API) We have finally laid all the groundwork to make this happen. The only change/delete conflicts that haven't been moved are .hgsubstate conflicts. Those are trickier to deal with and well outside the scope of this series. We add comprehensive testing not just for the initial selections but also for re-resolves and all possible dirstate transitions caused by merge tools. That testing managed to shake out several bugs in the way we were handling dirstate transitions. The other test changes are because we now treat change/delete conflicts as proper merges, and increment the 'merged' counter rather than the 'updated' counter. I believe this is the right approach here. For third-party extensions, if they're interacting with filemerge code they might have to deal with an absentfilectx rather than a regular filectx. Still to come: - add a 'leave unresolved' option to merges - change the default for non-interactive change/delete conflicts to be 'leave unresolved' - add debug output to go alongside debug outputs for binary and symlink file merges
author Siddharth Agarwal <sid0@fb.com>
date Wed, 25 Nov 2015 14:25:33 -0800
parents d837da26155e
children 296d55def9c4
comparison
equal deleted inserted replaced
27136:29b08ca680b0 27137:25e4b2f000c5
677 unmatched files new in both: 677 unmatched files new in both:
678 b 678 b
679 resolving manifests 679 resolving manifests
680 branchmerge: True, force: False, partial: False 680 branchmerge: True, force: False, partial: False
681 ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a 681 ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a
682 preserving b for resolve of b
683 preserving rev for resolve of rev
684 a: prompt deleted/changed -> m (premerge)
685 picked tool ':prompt' for a (binary False symlink False)
682 remote changed a which local deleted 686 remote changed a which local deleted
683 use (c)hanged version or leave (d)eleted? c 687 use (c)hanged version or leave (d)eleted? c
684 preserving b for resolve of b
685 preserving rev for resolve of rev
686 a: prompt recreating -> g
687 getting a
688 b: both created -> m (premerge) 688 b: both created -> m (premerge)
689 picked tool 'python ../merge' for b (binary False symlink False) 689 picked tool 'python ../merge' for b (binary False symlink False)
690 merging b 690 merging b
691 my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000 691 my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
692 rev: versions differ -> m (premerge) 692 rev: versions differ -> m (premerge)
701 rev: versions differ -> m (merge) 701 rev: versions differ -> m (merge)
702 picked tool 'python ../merge' for rev (binary False symlink False) 702 picked tool 'python ../merge' for rev (binary False symlink False)
703 my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337 703 my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
704 launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob) 704 launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
705 merge tool returned: 0 705 merge tool returned: 0
706 1 files updated, 2 files merged, 0 files removed, 0 files unresolved 706 0 files updated, 3 files merged, 0 files removed, 0 files unresolved
707 (branch merge, don't forget to commit) 707 (branch merge, don't forget to commit)
708 -------------- 708 --------------
709 M a 709 M a
710 M b 710 M b
711 -------------- 711 --------------
719 unmatched files new in both: 719 unmatched files new in both:
720 b 720 b
721 resolving manifests 721 resolving manifests
722 branchmerge: True, force: False, partial: False 722 branchmerge: True, force: False, partial: False
723 ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a 723 ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a
724 preserving a for resolve of a
725 preserving b for resolve of b
726 preserving rev for resolve of rev
727 a: prompt changed/deleted -> m (premerge)
728 picked tool ':prompt' for a (binary False symlink False)
724 local changed a which remote deleted 729 local changed a which remote deleted
725 use (c)hanged version or (d)elete? c 730 use (c)hanged version or (d)elete? c
726 preserving b for resolve of b
727 preserving rev for resolve of rev
728 a: prompt keep -> am
729 b: both created -> m (premerge) 731 b: both created -> m (premerge)
730 picked tool 'python ../merge' for b (binary False symlink False) 732 picked tool 'python ../merge' for b (binary False symlink False)
731 merging b 733 merging b
732 my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000 734 my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
733 rev: versions differ -> m (premerge) 735 rev: versions differ -> m (premerge)
742 rev: versions differ -> m (merge) 744 rev: versions differ -> m (merge)
743 picked tool 'python ../merge' for rev (binary False symlink False) 745 picked tool 'python ../merge' for rev (binary False symlink False)
744 my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337 746 my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
745 launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob) 747 launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
746 merge tool returned: 0 748 merge tool returned: 0
747 0 files updated, 2 files merged, 0 files removed, 0 files unresolved 749 0 files updated, 3 files merged, 0 files removed, 0 files unresolved
748 (branch merge, don't forget to commit) 750 (branch merge, don't forget to commit)
749 -------------- 751 --------------
750 M b 752 M b
751 C a 753 C a
752 -------------- 754 --------------