On 9/21/16 1:33 PM, Martin von Zweigbergk wrote:
On Tue, Sep 20, 2016 at 4:47 PM, Durham Goode <dur...@fb.com> wrote:
# HG changeset patch
# User Durham Goode <dur...@fb.com>
# Date 1474399441 25200
#      Tue Sep 20 12:24:01 2016 -0700
# Node ID f24ed91bde0ea4307546848e1100735d13879372
# Parent  b16ce237ed47ef8c6f0f72bbc511b29ea9289ef3
manifest: remove manifest.readshallowdelta

This removes manifest.readshallowdelta and converts its one consumer to use
manifestlog instead.

diff --git a/mercurial/manifest.py b/mercurial/manifest.py
--- a/mercurial/manifest.py
+++ b/mercurial/manifest.py
@@ -1246,41 +1246,6 @@ class manifest(manifestrevlog):
                                                self._dirlogcache)
          return self._dirlogcache[dir]

-    def _slowreaddelta(self, node):
-        r0 = self.deltaparent(self.rev(node))
-        m0 = self.read(self.node(r0))
-        m1 = self.read(node)
-        md = self._newmanifest()
-        for f, ((n0, fl0), (n1, fl1)) in m0.diff(m1).iteritems():
-            if n1:
-                md[f] = n1
-                if fl1:
-                    md.setflag(f, fl1)
-        return md
-
-    def readdelta(self, node):
-        if self._usemanifestv2 or self._treeondisk:
-            return self._slowreaddelta(node)
-        r = self.rev(node)
-        d = mdiff.patchtext(self.revdiff(self.deltaparent(r), r))
-        return self._newmanifest(d)
-
-    def readshallowdelta(self, node):
-        '''For flat manifests, this is the same as readdelta(). For
-        treemanifests, this will read the delta for this revlog's directory,
-        without recursively reading subdirectory manifests. Instead, any
-        subdirectory entry will be reported as it appears in the manifests, 
i.e.
-        the subdirectory will be reported among files and distinguished only by
-        its 't' flag.'''
I thought this comment might be useful. Could you add it to the new
method, thanks. Same thing applies to readshallow() in the previous
patch.
Will do.

-        if not self._treeondisk:
-            return self.readdelta(node)
-        if self._usemanifestv2:
-            raise error.Abort(
-                _("readshallowdelta() not implemented for manifestv2"))
-        r = self.rev(node)
-        d = mdiff.patchtext(self.revdiff(self.deltaparent(r), r))
-        return manifestdict(d)
-
      def read(self, node):
          if node == revlog.nullid:
              return self._newmanifest() # don't upset local cache
diff --git a/mercurial/verify.py b/mercurial/verify.py
--- a/mercurial/verify.py
+++ b/mercurial/verify.py
@@ -201,7 +201,8 @@ class verifier(object):
                          progress=None):
          repo = self.repo
          ui = self.ui
-        mf = self.repo.manifest.dirlog(dir)
+        mf = self.repo.manifestlog._revlog.dirlog(dir)
+        mfl = self.repo.manifestlog
nit: write mf in terms of mfl instead, but feel free to leave as is if
this is changing again before the end of the series (feel free to
ignore otherwise too :-))
I'm not sure I understand what you mean by "in terms of mfl"?

          if not dir:
              self.ui.status(_("checking manifests\n"))
@@ -235,7 +236,8 @@ class verifier(object):
                  self.err(lr, _("%s not in changesets") % short(n), label)

              try:
-                for f, fn, fl in mf.readshallowdelta(n).iterentries():
+                mfdelta = mfl.get(dir, n).readdelta(shallow=True)
+                for f, fn, fl in mfdelta.iterentries():
                      if not f:
                          self.err(lr, _("entry without name in manifest"))
                      elif f == "/dev/null":  # ignore this in very old repos
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mercurial-2Dscm.org_mailman_listinfo_mercurial-2Ddevel&d=DQIBaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=nuarHzhP1wi1T9iURRCj1A&m=g23kxRa7I_WePzUCgsxSI92ed8zsD4GVzkhJgLrw8eg&s=-N_dUrq34DPROF4fJwAyTK6oFG8nFVVMUaUVPCRskfY&e=

_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to