diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -661,7 +661,8 @@ def _pullobsolete(pullop): 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 diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -106,9 +106,9 @@ class localpeer(peer.peerrepository): 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 diff --git a/mercurial/wireproto.py b/mercurial/wireproto.py --- a/mercurial/wireproto.py +++ b/mercurial/wireproto.py @@ -325,7 +325,8 @@ class wirepeer(peer.peerrepository): 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 @@ class wirepeer(peer.peerrepository): 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)