mercurial/sshpeer.py
changeset 37411 3e1688711efd
parent 37393 afcfdf53e4b5
child 37498 aacfca6f9767
--- 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'))