mercurial/manifest.py
changeset 30343 952e1916ae56
parent 30342 fe1ee393de78
child 30345 fa54f7ade491
--- a/mercurial/manifest.py	Tue Nov 08 08:03:43 2016 -0800
+++ b/mercurial/manifest.py	Tue Nov 08 08:03:43 2016 -0800
@@ -1331,6 +1331,11 @@
     def new(self):
         return memmanifestctx(self._repo)
 
+    def copy(self):
+        memmf = memmanifestctx(self._repo)
+        memmf._manifestdict = self.read().copy()
+        return memmf
+
     def read(self):
         return self._manifestdict
 
@@ -1360,6 +1365,11 @@
     def new(self):
         return memmanifestctx(self._repo)
 
+    def copy(self):
+        memmf = memmanifestctx(self._repo)
+        memmf._manifestdict = self.read().copy()
+        return memmf
+
     def read(self):
         if not self._data:
             if self._node == revlog.nullid:
@@ -1423,6 +1433,11 @@
     def new(self, dir=''):
         return memtreemanifestctx(self._repo, dir=dir)
 
+    def copy(self):
+        memmf = memtreemanifestctx(self._repo, dir=self._dir)
+        memmf._treemanifest = self._treemanifest.copy()
+        return memmf
+
     def read(self):
         return self._treemanifest
 
@@ -1472,6 +1487,11 @@
     def new(self, dir=''):
         return memtreemanifestctx(self._repo, dir=dir)
 
+    def copy(self):
+        memmf = memtreemanifestctx(self._repo, dir=self._dir)
+        memmf._treemanifest = self.read().copy()
+        return memmf
+
     def readdelta(self, shallow=False):
         '''Returns a manifest containing just the entries that are present
         in this manifest, but not in its p1 manifest. This is efficient to read