diff -r 3dfb5a0171c9 -r fe1ee393de78 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 @@ -1323,6 +1323,17 @@ def add(self, m, transaction, link, p1, p2, added, removed): return self._revlog.add(m, transaction, link, p1, p2, added, removed) +class memmanifestctx(object): + def __init__(self, repo): + self._repo = repo + self._manifestdict = manifestdict() + + def new(self): + return memmanifestctx(self._repo) + + def read(self): + return self._manifestdict + class manifestctx(object): """A class representing a single revision of a manifest, including its contents, its parent revs, and its linkrev. @@ -1346,6 +1357,9 @@ def node(self): return self._node + def new(self): + return memmanifestctx(self._repo) + def read(self): if not self._data: if self._node == revlog.nullid: @@ -1400,6 +1414,18 @@ def find(self, key): return self.read().find(key) +class memtreemanifestctx(object): + def __init__(self, repo, dir=''): + self._repo = repo + self._dir = dir + self._treemanifest = treemanifest() + + def new(self, dir=''): + return memtreemanifestctx(self._repo, dir=dir) + + def read(self): + return self._treemanifest + class treemanifestctx(object): def __init__(self, repo, dir, node): self._repo = repo @@ -1443,6 +1469,9 @@ def node(self): return self._node + def new(self, dir=''): + return memtreemanifestctx(self._repo, dir=dir) + 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