[PATCH 1 of 9 V3] manifest: move treeinmem onto manifestlog

Durham Goode durham at fb.com
Tue Sep 20 19:36:23 UTC 2016


# HG changeset patch
# User Durham Goode <durham at fb.com>
# Date 1474399441 25200
#      Tue Sep 20 12:24:01 2016 -0700
# Node ID 952e434dd3b51dfdfbfd370dfa85f66929757be0
# Parent  285a8c3e53f2183438f0cdbc238e4ab851d0d110
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)


More information about the Mercurial-devel mailing list