##// END OF EJS Templates
convert: fix syncing deletes from p2 merge commit...
Durham Goode -
r26078:5ca58734 default
parent child Browse files
Show More
@@ -223,7 +223,12 b' class mercurial_sink(converter_sink):'
223 223 def getfilectx(repo, memctx, f):
224 224 if p2ctx and f in p2files and f not in copies:
225 225 self.ui.debug('reusing %s from p2\n' % f)
226 return p2ctx[f]
226 try:
227 return p2ctx[f]
228 except error.ManifestLookupError:
229 # If the file doesn't exist in p2, then we're syncing a
230 # delete, so just return None.
231 return None
227 232 try:
228 233 v = files[f]
229 234 except KeyError:
@@ -677,34 +677,39 b' test converting merges into a repo that '
677 677
678 678 $ hg init merge-test1
679 679 $ cd merge-test1
680 $ touch a && hg commit -Aqm a
681 $ hg up -q null
682 $ touch b && hg commit -Aqm b
683 $ hg merge -q 0 && hg commit -qm merge
680 $ touch a && hg commit -Aqm 'add a'
681 $ echo a > a && hg commit -Aqm 'edit a'
682 $ hg up -q 0
683 $ touch b && hg commit -Aqm 'add b'
684 $ hg merge -q 1 && hg commit -qm 'merge a & b'
685
684 686 $ cd ..
685 687 $ hg init merge-test2
686 688 $ cd merge-test2
687 689 $ mkdir converted
688 $ touch converted/a && hg commit -Aqm 'a'
689 $ touch x && hg commit -Aqm 'x'
690 $ touch converted/a toberemoved && hg commit -Aqm 'add converted/a & toberemoved'
691 $ touch x && rm toberemoved && hg commit -Aqm 'add x & remove tobremoved'
690 692 $ cd ..
691 $ hg log -G -T '{node}' -R merge-test1
692 @ ea7c1a7ae9588677a715ce4f204cd89c28d5471f
693 $ hg log -G -T '{shortest(node)} {desc}' -R merge-test1
694 @ 1191 merge a & b
693 695 |\
694 | o d7486e00c6f1b633dcadc0582f78006d805c7a0f
695 |
696 o 3903775176ed42b1458a6281db4a0ccf4d9f287a
696 | o 9077 add b
697 | |
698 o | d19f edit a
699 |/
700 o ac82 add a
697 701
698 $ hg log -G -T '{node}' -R merge-test2
699 @ 34f1aa7da42559bae87920880b522d47b3ddbc0d
702 $ hg log -G -T '{shortest(node)} {desc}' -R merge-test2
703 @ 150e add x & remove tobremoved
700 704 |
701 o e01a12b07b4fdfd61ff90a2a1b4560a7a776f323
705 o bbac add converted/a & toberemoved
702 706
703 707 - Build a shamap where the target converted/a is in on top of an unrelated
704 708 - change to 'x'. This simulates using convert to merge several repositories
705 709 - together.
706 710 $ cat >> merge-test2/.hg/shamap <<EOF
707 > 3903775176ed42b1458a6281db4a0ccf4d9f287a 34f1aa7da42559bae87920880b522d47b3ddbc0d
711 > $(hg -R merge-test1 log -r 0 -T '{node}') $(hg -R merge-test2 log -r 0 -T '{node}')
712 > $(hg -R merge-test1 log -r 1 -T '{node}') $(hg -R merge-test2 log -r 1 -T '{node}')
708 713 > EOF
709 714 $ cat >> merge-test-filemap <<EOF
710 715 > rename . converted/
@@ -713,19 +718,26 b' test converting merges into a repo that '
713 718 scanning source...
714 719 sorting...
715 720 converting...
716 1 b
717 0 merge
721 1 add b
722 0 merge a & b
718 723 $ hg -R merge-test2 manifest -r tip
719 724 converted/a
720 725 converted/b
721 726 x
722 $ hg -R merge-test2 log -G -T '{node}\n{files % "{file}\n"}'
723 o 4b5e2f0218d3442a0c14892b18685bf9c8059c4a
724 |\
725 | o 214325dd2e4cff981dcf00cb120cd39e1ea36dcc
726 | converted/b
727 @ 34f1aa7da42559bae87920880b522d47b3ddbc0d
728 | x
729 o e01a12b07b4fdfd61ff90a2a1b4560a7a776f323
730 converted/a
727 $ hg -R merge-test2 log -G -T '{shortest(node)} {desc}\n{files % "- {file}\n"}\n'
728 o 6eaa merge a & b
729 |\ - converted/a
730 | | - toberemoved
731 | |
732 | o 2995 add b
733 | | - converted/b
734 | |
735 @ | 150e add x & remove tobremoved
736 |/ - toberemoved
737 | - x
738 |
739 o bbac add converted/a & toberemoved
740 - converted/a
741 - toberemoved
742
731 743
General Comments 0
You need to be logged in to leave comments. Login now