[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