diff mercurial/wireproto.py @ 24641:60fecc5b14a4

unbundle20: retrieve unbundler instances through a factory function To support multiple bundle2 formats, we will need a function returning the proper unbundler according to the header. We introduce such aa function and change the usage in the code base. The function will get smarter in later changesets. This is somewhat similar to the dispatching we do for 'HG10' and 'HG11'. The main target is to allow HG2Y support in an extension to ease transition of companies using the experimental protocol in production (yeah...) But I've no doubt this will be useful when playing with a future HG21.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Mon, 06 Apr 2015 16:04:33 -0700
parents 37a92908a382
children 2d15c59a001b
line wrap: on
line diff
--- a/mercurial/wireproto.py	Mon Apr 06 15:40:12 2015 -0700
+++ b/mercurial/wireproto.py	Mon Apr 06 16:04:33 2015 -0700
@@ -364,7 +364,7 @@
         f = self._callcompressable("getbundle", **opts)
         bundlecaps = kwargs.get('bundlecaps')
         if bundlecaps is not None and 'HG2Y' in bundlecaps:
-            return bundle2.unbundle20(self.ui, f)
+            return bundle2.getunbundler(self.ui, f)
         else:
             return changegroupmod.cg1unpacker(f, 'UN')
 
@@ -401,7 +401,7 @@
         else:
             # bundle2 push. Send a stream, fetch a stream.
             stream = self._calltwowaystream('unbundle', cg, heads=heads)
-            ret = bundle2.unbundle20(self.ui, stream)
+            ret = bundle2.getunbundler(self.ui, stream)
         return ret
 
     def debugwireargs(self, one, two, three=None, four=None, five=None):