# HG changeset patch # User Durham Goode # Date 2016-11-08 16:03:43 # 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 --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -1331,6 +1331,11 @@ class memmanifestctx(object): 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 @@ class manifestctx(object): 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 @@ class memtreemanifestctx(object): 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 @@ class treemanifestctx(object): 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