[PATCH 8 of 8] bundle2: directly feed part to readbundle

pierre-yves.david at ens-lyon.org pierre-yves.david at ens-lyon.org
Sat Apr 12 17:08:47 CDT 2014


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1397277495 14400
#      Sat Apr 12 00:38:15 2014 -0400
# Node ID 0d2c95ff44edc35fe1f35816c6b5165f33a57bfe
# Parent  192cace034eaafb08e536afd113f0b10ff0cf0e8
bundle2: directly feed part to readbundle

Now that part payload can be read like a stream, we can directly use it to feed
the unbundle10 process.

diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
--- a/mercurial/bundle2.py
+++ b/mercurial/bundle2.py
@@ -142,11 +142,10 @@ preserve.
 
 import util
 import struct
 import urllib
 import string
-import StringIO
 
 import changegroup
 from i18n import _
 
 _pack = struct.pack
@@ -638,13 +637,11 @@ def handlechangegroup(op, inpart):
     #
     # The addchangegroup function will get a transaction object by itself, but
     # we need to make sure we trigger the creation of a transaction object used
     # for the whole processing scope.
     op.gettransaction()
-    data = StringIO.StringIO(inpart.read())
-    data.seek(0)
-    cg = changegroup.readbundle(data, 'bundle2part')
+    cg = changegroup.readbundle(inpart, 'bundle2part')
     ret = changegroup.addchangegroup(op.repo, cg, 'bundle2', 'bundle2')
     op.records.add('changegroup', {'return': ret})
     if op.reply is not None:
         # This is definitly not the final form of this
         # return. But one need to start somewhere.


More information about the Mercurial-devel mailing list