D4208: changegroup: move size tracking and end of manifests to generate()

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Thu Aug 9 22:24:18 EDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rHG2ebdd265fe8c: changegroup: move size tracking and end of manifests to generate() (authored by indygreg, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D4208?vs=10202&id=10232

REVISION DETAIL
  https://phab.mercurial-scm.org/D4208

AFFECTED FILES
  mercurial/changegroup.py

CHANGE DETAILS

diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -870,11 +870,16 @@
 
         fnodes = {}  # needed file nodes
 
+        size = 0
         for chunk in self.generatemanifests(commonrevs, clrevorder,
                 fastpathlinkrev, mfs, fnodes, source,
                 clstate['clrevtomanifestrev']):
+            size += len(chunk)
             yield chunk
 
+        self._verbosenote(_('%8.i (manifests)\n') % size)
+        yield self._manifestsend
+
         mfdicts = None
         if self._ellipses and self._isshallow:
             mfdicts = [(self._repo.manifestlog[n].read(), lr)
@@ -1025,7 +1030,6 @@
                 return clnode
             return lookupmflinknode
 
-        size = 0
         while tmfnodes:
             dir, nodes = tmfnodes.popitem()
             store = dirlog(dir)
@@ -1052,7 +1056,6 @@
             if dir:
                 assert self.version == b'03'
                 chunk = _fileheader(dir)
-                size += len(chunk)
                 yield chunk
 
             it = deltagroup(
@@ -1065,16 +1068,11 @@
                 precomputedellipsis=self._precomputedellipsis)
 
             for chunk in it:
-                size += len(chunk)
                 yield chunk
 
             close = closechunk()
-            size += len(close)
             yield close
 
-        self._verbosenote(_('%8.i (manifests)\n') % size)
-        yield self._manifestsend
-
     # The 'source' parameter is useful for extensions
     def generatefiles(self, changedfiles, commonrevs, source,
                       mfdicts, fastpathlinkrev, fnodes, clrevs):



To: indygreg, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list