changeset 21157:60ad2ea5b106

getbundle: pass arbitrary arguments all along the call chain The wireprotocol command accepts arbitrary arguments, we are now passing such arguments down the call chain.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 17 Apr 2014 17:25:50 -0400
parents 2bfb0598206a
children 8f6530b62177
files mercurial/exchange.py mercurial/localrepo.py mercurial/wireproto.py
diffstat 3 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/exchange.py	Thu Apr 17 17:59:28 2014 -0400
+++ b/mercurial/exchange.py	Thu Apr 17 17:25:50 2014 -0400
@@ -661,7 +661,8 @@
             pullop.repo.invalidatevolatilesets()
     return tr
 
-def getbundle(repo, source, heads=None, common=None, bundlecaps=None):
+def getbundle(repo, source, heads=None, common=None, bundlecaps=None,
+              **kwargs):
     """return a full bundle (with potentially multiple kind of parts)
 
     Could be a bundle HG10 or a bundle HG2X depending on bundlecaps
--- a/mercurial/localrepo.py	Thu Apr 17 17:59:28 2014 -0400
+++ b/mercurial/localrepo.py	Thu Apr 17 17:25:50 2014 -0400
@@ -106,9 +106,9 @@
         return self._repo.known(nodes)
 
     def getbundle(self, source, heads=None, common=None, bundlecaps=None,
-                  format='HG10'):
+                  format='HG10', **kwargs):
         cg = exchange.getbundle(self._repo, source, heads=heads,
-                                common=common, bundlecaps=bundlecaps)
+                                common=common, bundlecaps=bundlecaps, **kwargs)
         if bundlecaps is not None and 'HG2X' in bundlecaps:
             # When requesting a bundle2, getbundle returns a stream to make the
             # wire level function happier. We need to build a proper object
--- a/mercurial/wireproto.py	Thu Apr 17 17:59:28 2014 -0400
+++ b/mercurial/wireproto.py	Thu Apr 17 17:25:50 2014 -0400
@@ -325,7 +325,8 @@
                                    bases=bases, heads=heads)
         return changegroupmod.unbundle10(f, 'UN')
 
-    def getbundle(self, source, heads=None, common=None, bundlecaps=None):
+    def getbundle(self, source, heads=None, common=None, bundlecaps=None,
+                  **kwargs):
         self.requirecap('getbundle', _('look up remote changes'))
         opts = {}
         if heads is not None:
@@ -334,6 +335,7 @@
             opts['common'] = encodelist(common)
         if bundlecaps is not None:
             opts['bundlecaps'] = ','.join(bundlecaps)
+        opts.update(kwargs)
         f = self._callcompressable("getbundle", **opts)
         if bundlecaps is not None and 'HG2X' in bundlecaps:
             return bundle2.unbundle20(self.ui, f)