getbundle: sort bundlecaps before exchanging then over the wire
The 'bundlecaps' argument is built as a set, we need to stabilise the order
before exchanging them. Otherwise, in the test, http logs are unstable when the
'bundlecaps' contains something (eg: using bundle2).
--- a/mercurial/wireproto.py Sun May 10 04:39:11 2015 -0700
+++ b/mercurial/wireproto.py Sun May 10 05:11:13 2015 -0700
@@ -345,6 +345,11 @@
def getbundle(self, source, **kwargs):
self.requirecap('getbundle', _('look up remote changes'))
opts = {}
+ bundlecaps = kwargs.get('bundlecaps')
+ if bundlecaps is not None:
+ kwargs['bundlecaps'] = sorted(bundlecaps)
+ else:
+ bundlecaps = () # kwargs could have it to None
for key, value in kwargs.iteritems():
if value is None:
continue
@@ -362,9 +367,6 @@
% keytype)
opts[key] = value
f = self._callcompressable("getbundle", **opts)
- bundlecaps = kwargs.get('bundlecaps')
- if bundlecaps is None:
- bundlecaps = () # kwargs could have it to None
if util.any((cap.startswith('HG2') for cap in bundlecaps)):
return bundle2.getunbundler(self.ui, f)
else: