Mercurial > hg
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 -------------- |