equal
deleted
inserted
replaced
6 # This software may be used and distributed according to the terms of the |
6 # This software may be used and distributed according to the terms of the |
7 # GNU General Public License version 2 or any later version. |
7 # GNU General Public License version 2 or any later version. |
8 |
8 |
9 from i18n import _ |
9 from i18n import _ |
10 from node import bin, hex |
10 from node import bin, hex |
11 import streamclone, util, hook |
11 import streamclone, util, hook, pushkey |
12 import os, sys, tempfile, urllib, copy |
12 import os, sys, tempfile, urllib, copy |
13 |
13 |
14 class sshserver(object): |
14 class sshserver(object): |
15 |
15 |
16 caps = 'unbundle lookup changegroupsubset branchmap'.split() |
16 caps = 'unbundle lookup changegroupsubset branchmap pushkey'.split() |
17 |
17 |
18 def __init__(self, ui, repo): |
18 def __init__(self, ui, repo): |
19 self.ui = ui |
19 self.ui = ui |
20 self.repo = repo |
20 self.repo = repo |
21 self.lock = None |
21 self.lock = None |
221 self.fout.write(chunk) |
221 self.fout.write(chunk) |
222 self.fout.flush() |
222 self.fout.flush() |
223 except streamclone.StreamException, inst: |
223 except streamclone.StreamException, inst: |
224 self.fout.write(str(inst)) |
224 self.fout.write(str(inst)) |
225 self.fout.flush() |
225 self.fout.flush() |
|
226 |
|
227 def do_pushkey(self): |
|
228 arg, key = self.getarg() |
|
229 arg, namespace = self.getarg() |
|
230 arg, new = self.getarg() |
|
231 arg, old = self.getarg() |
|
232 r = pushkey.push(self.repo, namespace, key, old, new) |
|
233 self.respond('%s\n' % int(r)) |
|
234 |
|
235 def do_listkeys(self): |
|
236 arg, namespace = self.getarg() |
|
237 d = pushkey.list(self.repo, namespace).items() |
|
238 t = '\n'.join(['%s\t%s' % (k.encode('string-escape'), |
|
239 v.encode('string-escape')) for k, v in d]) |
|
240 self.respond(t) |