# HG changeset patch # User Durham Goode # Date 1478621023 28800 # Node ID 952e1916ae5673fbee744a77a2cafe442e1378cb # Parent fe1ee393de782304ab852ef5d1b87bf445aad11f manifest: add copy to mfctx classes This adds copy functionality to the manifestctx classes. This will be used in an upcoming diff to copy a manifestctx during commit so we can modify the manifest before committing. diff -r fe1ee393de78 -r 952e1916ae56 mercurial/manifest.py --- 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