Patchwork [5,of,6] bundle20: extract core payload generation in its own function

login
register
mail settings
Submitter Pierre-Yves David
Date Sept. 24, 2015, 1:21 a.m.
Message ID <62ee35a3fcb068f72588.1443057684@marginatus.alto.octopoid.net>
Download mbox | patch
Permalink /patch/10607/
State Superseded
Headers show

Comments

Pierre-Yves David - Sept. 24, 2015, 1:21 a.m.
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@fb.com>
# Date 1443038165 25200
#      Wed Sep 23 12:56:05 2015 -0700
# Node ID 62ee35a3fcb068f72588b8fb594c4a7bfd163df7
# Parent  3c766da3be16121bce499831ae254915f0d38786
bundle20: extract core payload generation in its own function

We are about to allow compressing the core of the bundle2. So we extract the
generation of this bits in its own parts to make this compression phases easier
in a later changesets.

Patch

diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
--- a/mercurial/bundle2.py
+++ b/mercurial/bundle2.py
@@ -528,18 +528,12 @@  class bundle20(object):
         param = self._paramchunk()
         outdebug(self.ui, 'bundle parameter: %s' % param)
         yield _pack(_fstreamparamsize, len(param))
         if param:
             yield param
-
-        outdebug(self.ui, 'start of parts')
-        for part in self._parts:
-            outdebug(self.ui, 'bundle part: "%s"' % part.type)
-            for chunk in part.getchunks(ui=self.ui):
-                yield chunk
-        outdebug(self.ui, 'end of bundle')
-        yield _pack(_fpartheadersize, 0)
+        for chunk in self._getcorechunk():
+            yield chunk
 
     def _paramchunk(self):
         """return a encoded version of all stream parameters"""
         blocks = []
         for par, value in self._params:
@@ -548,10 +542,23 @@  class bundle20(object):
                 value = urllib.quote(value)
                 par = '%s=%s' % (par, value)
             blocks.append(par)
         return ' '.join(blocks)
 
+    def _getcorechunk(self):
+        """yield chunk for the core part of the bundle
+
+        (all but headers and parameters)"""
+        outdebug(self.ui, 'start of parts')
+        for part in self._parts:
+            outdebug(self.ui, 'bundle part: "%s"' % part.type)
+            for chunk in part.getchunks(ui=self.ui):
+                yield chunk
+        outdebug(self.ui, 'end of bundle')
+        yield _pack(_fpartheadersize, 0)
+
+
     def salvageoutput(self):
         """return a list with a copy of all output parts in the bundle
 
         This is meant to be used during error handling to make sure we preserve
         server output"""