hgext/evolve.py
changeset 1131 a44a26f8cc48
parent 1129 da565c825429
child 1132 7a1784a1c642
--- a/hgext/evolve.py	Thu Oct 16 14:06:52 2014 -0700
+++ b/hgext/evolve.py	Thu Oct 16 04:38:37 2014 -0700
@@ -806,14 +806,20 @@
     try:
         try:
             r = rebase.rebasenode(repo, orig.node(), dest.node(),
-                                  {node.nullrev: node.nullrev}, False)
+                                  {node.nullrev: node.nullrev}, False,
+                                  orig.p1().node())
             if r[-1]: #some conflict
                 raise util.Abort(
                         'unresolved merge conflicts (see hg help resolve)')
-            cmdutil.duplicatecopies(repo, orig.node(), dest.node())
             nodenew = rebase.concludenode(repo, orig.node(), dest.node(),
                                           node.nullid, commitmsg)
         except util.Abort, exc:
+            repo.dirstate.beginparentchange()
+            repo.setparents(repo['.'].node(), nullid)
+            repo.dirstate.write()
+            # fix up dirstate for copies and renames
+            copies.duplicatecopies(repo, dest.rev(), orig.p1().rev())
+            repo.dirstate.endparentchange()
             class LocalMergeFailure(MergeFailure, exc.__class__):
                 pass
             exc.__class__ = LocalMergeFailure