##// END OF EJS Templates
merge: when rename was made on both sides, use ancestor as merge base...
Martin von Zweigbergk -
r44714:b4057d00 default
parent child Browse files
Show More
@@ -537,10 +537,7 b' def _checksinglesidecopies('
537 537 return
538 538 # modified on side 2
539 539 for dst in dsts1:
540 if dst not in m2:
541 # dst not added on side 2 (handle as regular
542 # "both created" case in manifestmerge otherwise)
543 copy[dst] = src
540 copy[dst] = src
544 541
545 542
546 543 class branch_copies(object):
@@ -206,57 +206,31 b' modify x and rename y to z on the other '
206 206 # Depending on which side they pick, we should take that rename and get
207 207 # the changes to the source from the other side. The unchanged file should
208 208 # remain.
209 # we should not get the prompts about modify/delete conflicts
210 209 $ hg merge --debug 1 -t :merge3
211 210 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
212 211 on local side:
213 src: 'y' -> dst: 'z'
212 src: 'y' -> dst: 'z' *
214 213 on remote side:
215 src: 'x' -> dst: 'z'
214 src: 'x' -> dst: 'z' *
216 215 checking for directory renames
217 216 resolving manifests
218 217 branchmerge: True, force: False, partial: False
219 218 ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508
220 preserving x for resolve of x
221 219 preserving z for resolve of z
222 220 starting 4 threads for background file closing (?)
223 x: prompt changed/deleted -> m (premerge)
224 picked tool ':prompt' for x (binary False symlink False changedelete True)
225 file 'x' was deleted in other [merge rev] but was modified in local [working copy].
226 You can use (c)hanged version, (d)elete, or leave (u)nresolved.
227 What do you want to do? u
228 y: prompt deleted/changed -> m (premerge)
229 picked tool ':prompt' for y (binary False symlink False changedelete True)
230 file 'y' was deleted in local [working copy] but was modified in other [merge rev].
231 You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
232 What do you want to do? u
233 z: both created -> m (premerge)
221 z: both renamed from y -> m (premerge)
234 222 picked tool ':merge3' for z (binary False symlink False changedelete False)
235 223 merging z
236 my z@07fcbc9a74ed+ other z@f21419739508 ancestor z@000000000000
237 z: both created -> m (merge)
238 picked tool ':merge3' for z (binary False symlink False changedelete False)
239 my z@07fcbc9a74ed+ other z@f21419739508 ancestor z@000000000000
240 warning: conflicts while merging z! (edit, then use 'hg resolve --mark')
241 0 files updated, 0 files merged, 0 files removed, 3 files unresolved
242 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
243 [1]
224 my z@07fcbc9a74ed+ other z@f21419739508 ancestor y@5151c134577e
225 premerge successful
226 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
227 (branch merge, don't forget to commit)
244 228 $ ls
245 229 x
246 y
247 230 z
248 z.orig
249 231 $ cat x
250 232 x
251 233 foo
252 $ cat y
253 y
254 foo
255 234 # 'z' should have had the added 'foo' line
256 235 $ cat z
257 <<<<<<< working copy: 07fcbc9a74ed - test: modify x, rename y to z
258 y
259 ||||||| base
260 =======
261 236 x
262 >>>>>>> merge rev: f21419739508 - test: modify y, rename x to z
@@ -529,7 +529,7 b' m "um a c" "um x c" " " "10 do merg'
529 529 --------------
530 530 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
531 531 on local side:
532 src: 'a' -> dst: 'b'
532 src: 'a' -> dst: 'b' *
533 533 checking for directory renames
534 534 resolving manifests
535 535 branchmerge: True, force: False, partial: False
@@ -538,19 +538,15 b' m "um a c" "um x c" " " "10 do merg'
538 538 preserving rev for resolve of rev
539 539 a: remote is newer -> g
540 540 getting a
541 b: both created -> m (premerge)
541 b: both renamed from a -> m (premerge)
542 542 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
543 543 merging b
544 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
544 my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
545 premerge successful
545 546 rev: versions differ -> m (premerge)
546 547 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
547 548 merging rev
548 549 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
549 b: both created -> m (merge)
550 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
551 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
552 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
553 merge tool returned: 0
554 550 rev: versions differ -> m (merge)
555 551 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
556 552 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -611,7 +607,7 b' m "um a c" "um x c" " " "10 do merg'
611 607 --------------
612 608 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
613 609 on local side:
614 src: 'a' -> dst: 'b'
610 src: 'a' -> dst: 'b' *
615 611 checking for directory renames
616 612 resolving manifests
617 613 branchmerge: True, force: False, partial: False
@@ -620,19 +616,15 b' m "um a c" "um x c" " " "10 do merg'
620 616 preserving rev for resolve of rev
621 617 a: remote is newer -> g
622 618 getting a
623 b: both created -> m (premerge)
619 b: both renamed from a -> m (premerge)
624 620 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
625 621 merging b
626 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
622 my b@86a2aa42fc76+ other b@8dbce441892a ancestor a@924404dff337
623 premerge successful
627 624 rev: versions differ -> m (premerge)
628 625 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
629 626 merging rev
630 627 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
631 b: both created -> m (merge)
632 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
633 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
634 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
635 merge tool returned: 0
636 628 rev: versions differ -> m (merge)
637 629 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
638 630 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -652,7 +644,7 b' m "um a c" "um x c" " " "10 do merg'
652 644 --------------
653 645 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
654 646 on remote side:
655 src: 'a' -> dst: 'b'
647 src: 'a' -> dst: 'b' *
656 648 checking for directory renames
657 649 resolving manifests
658 650 branchmerge: True, force: False, partial: False
@@ -660,19 +652,15 b' m "um a c" "um x c" " " "10 do merg'
660 652 preserving b for resolve of b
661 653 preserving rev for resolve of rev
662 654 starting 4 threads for background file closing (?)
663 b: both created -> m (premerge)
655 b: both renamed from a -> m (premerge)
664 656 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
665 657 merging b
666 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
658 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
659 premerge successful
667 660 rev: versions differ -> m (premerge)
668 661 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
669 662 merging rev
670 663 my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
671 b: both created -> m (merge)
672 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
673 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
674 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
675 merge tool returned: 0
676 664 rev: versions differ -> m (merge)
677 665 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
678 666 my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
@@ -692,7 +680,7 b' m "um a c" "um x c" " " "10 do merg'
692 680 --------------
693 681 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
694 682 on local side:
695 src: 'a' -> dst: 'b'
683 src: 'a' -> dst: 'b' *
696 684 checking for directory renames
697 685 resolving manifests
698 686 branchmerge: True, force: False, partial: False
@@ -700,35 +688,24 b' m "um a c" "um x c" " " "10 do merg'
700 688 preserving b for resolve of b
701 689 preserving rev for resolve of rev
702 690 starting 4 threads for background file closing (?)
703 a: prompt deleted/changed -> m (premerge)
704 picked tool ':prompt' for a (binary False symlink False changedelete True)
705 file 'a' was deleted in local [working copy] but was modified in other [merge rev].
706 You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
707 What do you want to do? u
708 b: both created -> m (premerge)
691 b: both renamed from a -> m (premerge)
709 692 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
710 693 merging b
711 my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
694 my b@02963e448370+ other b@8dbce441892a ancestor a@924404dff337
695 premerge successful
712 696 rev: versions differ -> m (premerge)
713 697 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
714 698 merging rev
715 699 my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
716 b: both created -> m (merge)
717 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
718 my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
719 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
720 merge tool returned: 0
721 700 rev: versions differ -> m (merge)
722 701 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
723 702 my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
724 703 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
725 704 merge tool returned: 0
726 0 files updated, 2 files merged, 0 files removed, 1 files unresolved
727 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
705 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
706 (branch merge, don't forget to commit)
728 707 --------------
729 M a
730 708 M b
731 abort: unresolved merge conflicts (see 'hg help resolve')
732 709 --------------
733 710
734 711 $ tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a"
@@ -738,44 +715,33 b' m "um a c" "um x c" " " "10 do merg'
738 715 --------------
739 716 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
740 717 on remote side:
741 src: 'a' -> dst: 'b'
718 src: 'a' -> dst: 'b' *
742 719 checking for directory renames
743 720 resolving manifests
744 721 branchmerge: True, force: False, partial: False
745 722 ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a
746 preserving a for resolve of a
747 723 preserving b for resolve of b
748 724 preserving rev for resolve of rev
725 b: both renamed from a -> m (premerge)
749 726 starting 4 threads for background file closing (?)
750 a: prompt changed/deleted -> m (premerge)
751 picked tool ':prompt' for a (binary False symlink False changedelete True)
752 file 'a' was deleted in other [merge rev] but was modified in local [working copy].
753 You can use (c)hanged version, (d)elete, or leave (u)nresolved.
754 What do you want to do? u
755 b: both created -> m (premerge)
756 727 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
757 728 merging b
758 my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
729 my b@0b76e65c8289+ other b@bdb19105162a ancestor a@924404dff337
730 premerge successful
759 731 rev: versions differ -> m (premerge)
760 732 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
761 733 merging rev
762 734 my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
763 b: both created -> m (merge)
764 picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
765 my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
766 launching merge tool: * ../merge *$TESTTMP/t/t/b* * * (glob)
767 merge tool returned: 0
768 735 rev: versions differ -> m (merge)
769 736 picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
770 737 my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
771 738 launching merge tool: * ../merge *$TESTTMP/t/t/rev* * * (glob)
772 739 merge tool returned: 0
773 0 files updated, 2 files merged, 0 files removed, 1 files unresolved
774 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
740 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
741 (branch merge, don't forget to commit)
775 742 --------------
776 743 M b
777 744 C a
778 abort: unresolved merge conflicts (see 'hg help resolve')
779 745 --------------
780 746
781 747 $ tm "up a " "um a b" " " "20 merge a and b to b, remove a"
General Comments 0
You need to be logged in to leave comments. Login now