[PATCH] sshserver: add a new getcapabilities method used by do_hello

david.douard at logilab.fr david.douard at logilab.fr
Tue Nov 3 02:16:54 CST 2009


# HG changeset patch
# User David Douard <david.douard at logilab.fr>
# Date 1257235419 -3600
# Node ID f7cc7f2e3450bb03ed7b8538433faee1780b2a16
# Parent  1de5ebfa5585cf8b6b47d0fadb7f2f114821ed63
sshserver: add a new getcapabilities method used by do_hello

Since getcapabilites can be easily wrapped by extensions, this makes it possible (without horrible hacks) for extensions to add capabilities to sshserver.

diff --git a/mercurial/sshserver.py b/mercurial/sshserver.py
--- a/mercurial/sshserver.py
+++ b/mercurial/sshserver.py
@@ -32,6 +32,12 @@
         val = self.fin.read(int(l))
         return arg, val
 
+    def getcapabilities(self):
+        caps = ['unbundle', 'lookup', 'changegroupsubset', 'branchmap']
+        if self.ui.configbool('server', 'uncompressed'):
+            caps.append('stream=%d' % self.repo.changelog.version)
+        return caps
+
     def respond(self, v):
         self.fout.write("%d\n" % len(v))
         self.fout.write(v)
@@ -85,10 +91,7 @@
 
         capabilities: space separated list of tokens
         '''
-
-        caps = ['unbundle', 'lookup', 'changegroupsubset', 'branchmap']
-        if self.ui.configbool('server', 'uncompressed'):
-            caps.append('stream=%d' % self.repo.changelog.version)
+        caps = self.getcapabilities()
         self.respond("capabilities: %s\n" % (' '.join(caps),))
 
     def do_lock(self):


More information about the Mercurial-devel mailing list