# HG changeset patch # User Pierre-Yves David # Date 1400748552 25200 # Node ID 3cb2da25b1713b0da0fde70f6af312d7b7cf987b # Parent 4dca1a06e7ee6c7569d9c3f0b5885a4f068e52bc wireproto: expose the list of getbundle arguments to extensions For now, getbundle accepts a fixed number of arguments: ``heads``, ``common`` and ``bundlecaps``. We make this list exposed at the module level to let extensions add content there. This is important for extensions that wish to use bundle2 for other contents than changegroup. diff -r 4dca1a06e7ee -r 3cb2da25b171 mercurial/wireproto.py --- a/mercurial/wireproto.py Wed May 07 17:24:19 2014 -0700 +++ b/mercurial/wireproto.py Thu May 22 01:49:12 2014 -0700 @@ -619,9 +619,15 @@ opts = options('debugwireargs', ['three', 'four'], others) return repo.debugwireargs(one, two, **opts) +# List of options accepted by getbundle. +# +# Meant to be extended by extensions. It is the extension's responsibility to +# ensure such options are properly processed in exchange.getbundle. +gboptslist = ['heads', 'common', 'bundlecaps'] + @wireprotocommand('getbundle', '*') def getbundle(repo, proto, others): - opts = options('getbundle', ['heads', 'common', 'bundlecaps'], others) + opts = options('getbundle', gboptslist, others) for k, v in opts.iteritems(): if k in ('heads', 'common'): opts[k] = decodelist(v)