--- a/mercurial/sshpeer.py Wed Apr 04 13:43:52 2018 -0700
+++ b/mercurial/sshpeer.py Fri Apr 06 21:50:01 2018 +0200
@@ -168,10 +168,10 @@
Returns a list of capabilities that are supported by this client.
"""
- protoparams = []
+ protoparams = set()
comps = [e.wireprotosupport().name for e in
util.compengines.supportedwireengines(util.CLIENTROLE)]
- protoparams.append('comp=%s' % ','.join(comps))
+ protoparams.add('comp=%s' % ','.join(comps))
return protoparams
def _performhandshake(ui, stdin, stdout, stderr):
@@ -626,7 +626,8 @@
# capabilities.
if 'protocaps' in peer.capabilities():
try:
- peer._call("protocaps", caps=' '.join(_clientcapabilities()))
+ peer._call("protocaps",
+ caps=' '.join(sorted(_clientcapabilities())))
except IOError:
peer._cleanup()
raise error.RepoError(_('capability exchange failed'))