D4207: changegroup: emit delta group close chunk outside of deltagroup()

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Thu Aug 9 20:52:55 UTC 2018


indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  I want to make deltagroup() emit data structures rather than
  serialized deltas. Upcoming commits will demonstrate why.

REPOSITORY
  rHG Mercurial

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

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
@@ -701,7 +701,6 @@
     """
     # if we don't have any revisions touched by these changesets, bail
     if len(revs) == 0:
-        yield closechunk()
         return
 
     cl = repo.changelog
@@ -754,8 +753,6 @@
     if progress:
         progress.complete()
 
-    yield closechunk()
-
 class cgpacker(object):
     def __init__(self, repo, filematcher, version, allowreorder,
                  deltaparentfn, builddeltaheader, manifestsend,
@@ -840,6 +837,10 @@
             size += len(chunk)
             yield chunk
 
+        close = closechunk()
+        size += len(close)
+        yield closechunk()
+
         self._verbosenote(_('%8.i (changelog)\n') % size)
 
         clrevorder = clstate['clrevorder']
@@ -1068,6 +1069,10 @@
                 size += len(chunk)
                 yield chunk
 
+            close = closechunk()
+            size += len(close)
+            yield close
+
         self._verbosenote(_('%8.i (manifests)\n') % size)
         yield self._manifestsend
 
@@ -1166,6 +1171,11 @@
                 for chunk in it:
                     size += len(chunk)
                     yield chunk
+
+                close = closechunk()
+                size += len(close)
+                yield close
+
                 self._verbosenote(_('%8.i  %s\n') % (size, fname))
         progress.complete()
 



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


More information about the Mercurial-devel mailing list