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.
--- 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)