mercurial/localrepo.py
branchstable
changeset 16551 ebf6d38c9063
parent 16536 63c817ea4a70
child 16624 3f85cef66dcc
child 16679 2950d186a927
--- a/mercurial/localrepo.py	Sun Apr 29 16:18:46 2012 +0200
+++ b/mercurial/localrepo.py	Sun Apr 29 22:25:55 2012 +0200
@@ -633,6 +633,17 @@
         '''get list of changectxs for parents of changeid'''
         return self[changeid].parents()
 
+    def setparents(self, p1, p2=nullid):
+        copies = self.dirstate.setparents(p1, p2)
+        if copies:
+            # Adjust copy records, the dirstate cannot do it, it
+            # requires access to parents manifests. Preserve them
+            # only for entries added to first parent.
+            pctx = self[p1]
+            for f in copies:
+                if f not in pctx and copies[f] in pctx:
+                    self.dirstate.copy(copies[f], f)
+
     def filectx(self, path, changeid=None, fileid=None):
         """changeid can be a changeset revision, node, or tag.
            fileid can be a file revision or node."""