manifest: remove dependency on treeinmem from manifest.add
authorDurham Goode <durham@fb.com>
Tue, 20 Sep 2016 12:24:01 -0700
changeset 29960 da75bc36202c
parent 29959 483003c27938
child 29961 774a15b129e8
manifest: remove dependency on treeinmem from manifest.add Currently manifest.add uses the treeinmem option to know if it can call fastdelta on the given manifest instance. In a future patch we will be moving add() to be on the manifestrevlog, so it won't have access to the treeinmem option anymore. Instead, let's have it actually check if the given manifest instance supports the fastdelta operation. This also means that if treemanifest or any implementation eventually implements fastdelta(), it will automatically benefit from this code path.
mercurial/manifest.py
--- a/mercurial/manifest.py	Tue Sep 20 12:24:01 2016 -0700
+++ b/mercurial/manifest.py	Tue Sep 20 12:24:01 2016 -0700
@@ -1234,7 +1234,7 @@
             return None, None
 
     def add(self, m, transaction, link, p1, p2, added, removed):
-        if (p1 in self.fulltextcache and not self._treeinmem
+        if (p1 in self.fulltextcache and util.safehasattr(m, 'fastdelta')
             and not self._usemanifestv2):
             # If our first parent is in the manifest cache, we can
             # compute a delta here using properties we know about the