# HG changeset patch # User Durham Goode # Date 2016-09-20 19:24:01 # Node ID 483003c279382a9c9fec11b008806e9ddccbd5d0 # Parent 37a36c05dcc3ab325989e13622b6815bad93da7f manifest: move treeinmem onto manifestlog A previous patched moved all the serialization related options onto manifestrevlog (since it is responsible for serialization). Let's move the treeinmem option on manifestlog, since it is responsible for materialization decisions. This reduces the number of dependencies manifestlog has on the old manifest type as well, so we can eventually make them completely independent of each other. diff --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -957,6 +957,13 @@ class manifestlog(object): def __init__(self, opener, repo): self._repo = repo + usetreemanifest = False + + opts = getattr(opener, 'options', None) + if opts is not None: + usetreemanifest = opts.get('treemanifest', usetreemanifest) + self._treeinmem = usetreemanifest + # We'll separate this into it's own cache once oldmanifest is no longer # used self._mancache = repo.manifest._mancache @@ -965,13 +972,6 @@ class manifestlog(object): def _revlog(self): return self._repo.manifest - @property - def _oldmanifest(self): - # _revlog is the same as _oldmanifest right now, but we eventually want - # to delete _oldmanifest while still allowing manifestlog to access the - # revlog specific apis. - return self._repo.manifest - def __getitem__(self, node): """Retrieves the manifest instance for the given node. Throws a KeyError if not found. @@ -984,7 +984,7 @@ class manifestlog(object): isinstance(cachemf, treemanifestctx)): return cachemf - if self._oldmanifest._treeinmem: + if self._treeinmem: m = treemanifestctx(self._revlog, '', node) else: m = manifestctx(self._revlog, node)