diff --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -1261,8 +1261,6 @@ class manifestlog(object): class do not care about the implementation details of the actual manifests they receive (i.e. tree or flat or lazily loaded, etc).""" def __init__(self, opener, repo): - self._repo = repo - usetreemanifest = False cachesize = 4 @@ -1309,7 +1307,7 @@ class manifestlog(object): if node not in dirlog.nodemap: raise LookupError(node, dirlog.indexfile, _('no node')) - m = treemanifestctx(self._repo, dir, node) + m = treemanifestctx(self, dir, node) else: raise error.Abort( _("cannot ask for manifest directory '%s' in a flat " @@ -1320,9 +1318,9 @@ class manifestlog(object): raise LookupError(node, self._revlog.indexfile, _('no node')) if self._treeinmem: - m = treemanifestctx(self._repo, '', node) + m = treemanifestctx(self, '', node) else: - m = manifestctx(self._repo, node) + m = manifestctx(self, node) if node != revlog.nullid: mancache = self._dirmancache.get(dir) @@ -1337,18 +1335,18 @@ class manifestlog(object): self._revlog.clearcaches() class memmanifestctx(object): - def __init__(self, repo): - self._repo = repo + def __init__(self, manifestlog): + self._manifestlog = manifestlog self._manifestdict = manifestdict() def _revlog(self): - return self._repo.manifestlog._revlog + return self._manifestlog._revlog def new(self): - return memmanifestctx(self._repo) + return memmanifestctx(self._manifestlog) def copy(self): - memmf = memmanifestctx(self._repo) + memmf = memmanifestctx(self._manifestlog) memmf._manifestdict = self.read().copy() return memmf @@ -1363,8 +1361,8 @@ class manifestctx(object): """A class representing a single revision of a manifest, including its contents, its parent revs, and its linkrev. """ - def __init__(self, repo, node): - self._repo = repo + def __init__(self, manifestlog, node): + self._manifestlog = manifestlog self._data = None self._node = node @@ -1377,16 +1375,16 @@ class manifestctx(object): #self.linkrev = revlog.linkrev(rev) def _revlog(self): - return self._repo.manifestlog._revlog + return self._manifestlog._revlog def node(self): return self._node def new(self): - return memmanifestctx(self._repo) + return memmanifestctx(self._manifestlog) def copy(self): - memmf = memmanifestctx(self._repo) + memmf = memmanifestctx(self._manifestlog) memmf._manifestdict = self.read().copy() return memmf @@ -1431,7 +1429,7 @@ class manifestctx(object): if revlog._usemanifestv2: # Need to perform a slow delta r0 = revlog.deltaparent(revlog.rev(self._node)) - m0 = self._repo.manifestlog[revlog.node(r0)].read() + m0 = self._manifestlog[revlog.node(r0)].read() m1 = self.read() md = manifestdict() for f, ((n0, fl0), (n1, fl1)) in m0.diff(m1).iteritems(): @@ -1449,19 +1447,19 @@ class manifestctx(object): return self.read().find(key) class memtreemanifestctx(object): - def __init__(self, repo, dir=''): - self._repo = repo + def __init__(self, manifestlog, dir=''): + self._manifestlog = manifestlog self._dir = dir self._treemanifest = treemanifest() def _revlog(self): - return self._repo.manifestlog._revlog + return self._manifestlog._revlog def new(self, dir=''): - return memtreemanifestctx(self._repo, dir=dir) + return memtreemanifestctx(self._manifestlog, dir=dir) def copy(self): - memmf = memtreemanifestctx(self._repo, dir=self._dir) + memmf = memtreemanifestctx(self._manifestlog, dir=self._dir) memmf._treemanifest = self._treemanifest.copy() return memmf @@ -1470,13 +1468,13 @@ class memtreemanifestctx(object): def write(self, transaction, link, p1, p2, added, removed): def readtree(dir, node): - return self._repo.manifestlog.get(dir, node).read() + return self._manifestlog.get(dir, node).read() return self._revlog().add(self._treemanifest, transaction, link, p1, p2, added, removed, readtree=readtree) class treemanifestctx(object): - def __init__(self, repo, dir, node): - self._repo = repo + def __init__(self, manifestlog, dir, node): + self._manifestlog = manifestlog self._dir = dir self._data = None @@ -1490,7 +1488,7 @@ class treemanifestctx(object): #self.linkrev = revlog.linkrev(rev) def _revlog(self): - return self._repo.manifestlog._revlog.dirlog(self._dir) + return self._manifestlog._revlog.dirlog(self._dir) def read(self): if self._data is None: @@ -1504,8 +1502,7 @@ class treemanifestctx(object): def readsubtree(dir, subm): # Set verify to False since we need to be able to create # subtrees for trees that don't exist on disk. - return self._repo.manifestlog.get(dir, subm, - verify=False).read() + return self._manifestlog.get(dir, subm, verify=False).read() m.read(gettext, readsubtree) m.setnode(self._node) self._data = m @@ -1521,10 +1518,10 @@ class treemanifestctx(object): return self._node def new(self, dir=''): - return memtreemanifestctx(self._repo, dir=dir) + return memtreemanifestctx(self._manifestlog, dir=dir) def copy(self): - memmf = memtreemanifestctx(self._repo, dir=self._dir) + memmf = memtreemanifestctx(self._manifestlog, dir=self._dir) memmf._treemanifest = self.read().copy() return memmf @@ -1551,7 +1548,7 @@ class treemanifestctx(object): else: # Need to perform a slow delta r0 = revlog.deltaparent(revlog.rev(self._node)) - m0 = self._repo.manifestlog.get(self._dir, revlog.node(r0)).read() + m0 = self._manifestlog.get(self._dir, revlog.node(r0)).read() m1 = self.read() md = treemanifest(dir=self._dir) for f, ((n0, fl0), (n1, fl1)) in m0.diff(m1).iteritems():