Mercurial > public > mercurial-scm > hg-stable
diff mercurial/sshserver.py @ 11369:02a4373ca5cd
pushkey: add ssh support
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 16 Jun 2010 16:05:13 -0500 |
parents | 04e1e6743809 |
children | ee1ed6afac21 |
line wrap: on
line diff
--- a/mercurial/sshserver.py Wed Jun 16 16:04:46 2010 -0500 +++ b/mercurial/sshserver.py Wed Jun 16 16:05:13 2010 -0500 @@ -8,12 +8,12 @@ from i18n import _ from node import bin, hex -import streamclone, util, hook +import streamclone, util, hook, pushkey import os, sys, tempfile, urllib, copy class sshserver(object): - caps = 'unbundle lookup changegroupsubset branchmap'.split() + caps = 'unbundle lookup changegroupsubset branchmap pushkey'.split() def __init__(self, ui, repo): self.ui = ui @@ -223,3 +223,18 @@ except streamclone.StreamException, inst: self.fout.write(str(inst)) self.fout.flush() + + def do_pushkey(self): + arg, key = self.getarg() + arg, namespace = self.getarg() + arg, new = self.getarg() + arg, old = self.getarg() + r = pushkey.push(self.repo, namespace, key, old, new) + self.respond('%s\n' % int(r)) + + def do_listkeys(self): + arg, namespace = self.getarg() + d = pushkey.list(self.repo, namespace).items() + t = '\n'.join(['%s\t%s' % (k.encode('string-escape'), + v.encode('string-escape')) for k, v in d]) + self.respond(t)