comparison mercurial/manifest.py @ 29960:da75bc36202c

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.
author Durham Goode <durham@fb.com>
date Tue, 20 Sep 2016 12:24:01 -0700
parents 483003c27938
children 774a15b129e8
comparison
equal deleted inserted replaced
29959:483003c27938 29960:da75bc36202c
1232 return m.find(f) 1232 return m.find(f)
1233 except KeyError: 1233 except KeyError:
1234 return None, None 1234 return None, None
1235 1235
1236 def add(self, m, transaction, link, p1, p2, added, removed): 1236 def add(self, m, transaction, link, p1, p2, added, removed):
1237 if (p1 in self.fulltextcache and not self._treeinmem 1237 if (p1 in self.fulltextcache and util.safehasattr(m, 'fastdelta')
1238 and not self._usemanifestv2): 1238 and not self._usemanifestv2):
1239 # If our first parent is in the manifest cache, we can 1239 # If our first parent is in the manifest cache, we can
1240 # compute a delta here using properties we know about the 1240 # compute a delta here using properties we know about the
1241 # manifest up-front, which may save time later for the 1241 # manifest up-front, which may save time later for the
1242 # revlog layer. 1242 # revlog layer.