diff mercurial/manifest.py @ 29939:80be4436e4cc

manifest: adds manifestctx.readfast This adds a copy of manifest.readfast to manifestctx.readfast and adds a consumer of it. It currently looks like duplicate code, but a future patch causes these functions to diverge as tree concepts are added to the tree version.
author Durham Goode <durham@fb.com>
date Tue, 13 Sep 2016 16:26:30 -0700
parents a059b17352ef
children fa145a205a7f
line wrap: on
line diff
--- a/mercurial/manifest.py	Tue Sep 13 16:25:21 2016 -0700
+++ b/mercurial/manifest.py	Tue Sep 13 16:26:30 2016 -0700
@@ -993,6 +993,14 @@
                 self._data = manifestdict(text)
         return self._data
 
+    def readfast(self):
+        rl = self._revlog
+        r = rl.rev(self._node)
+        deltaparent = rl.deltaparent(r)
+        if deltaparent != revlog.nullrev and deltaparent in rl.parentrevs(r):
+            return self.readdelta()
+        return self.read()
+
     def readdelta(self):
         revlog = self._revlog
         if revlog._usemanifestv2:
@@ -1066,6 +1074,14 @@
                     md.setflag(f, fl1)
         return md
 
+    def readfast(self):
+        rl = self._revlog
+        r = rl.rev(self._node)
+        deltaparent = rl.deltaparent(r)
+        if deltaparent != revlog.nullrev and deltaparent in rl.parentrevs(r):
+            return self.readdelta()
+        return self.read()
+
 class manifest(manifestrevlog):
     def __init__(self, opener, dir='', dirlogcache=None):
         '''The 'dir' and 'dirlogcache' arguments are for internal use by
@@ -1149,20 +1165,6 @@
         d = mdiff.patchtext(self.revdiff(self.deltaparent(r), r))
         return manifestdict(d)
 
-    def readfast(self, node):
-        '''use the faster of readdelta or read
-
-        This will return a manifest which is either only the files
-        added/modified relative to p1, or all files in the
-        manifest. Which one is returned depends on the codepath used
-        to retrieve the data.
-        '''
-        r = self.rev(node)
-        deltaparent = self.deltaparent(r)
-        if deltaparent != revlog.nullrev and deltaparent in self.parentrevs(r):
-            return self.readdelta(node)
-        return self.read(node)
-
     def readshallowfast(self, node):
         '''like readfast(), but calls readshallowdelta() instead of readdelta()
         '''