Show More
@@ -72,7 +72,9 b' class sshserver(object):' | |||||
72 | if cmd: |
|
72 | if cmd: | |
73 | impl = getattr(self, 'do_' + cmd, None) |
|
73 | impl = getattr(self, 'do_' + cmd, None) | |
74 | if impl: |
|
74 | if impl: | |
75 | impl() |
|
75 | r = impl() | |
|
76 | if r is not None: | |||
|
77 | self.respond(r) | |||
76 | else: self.respond("") |
|
78 | else: self.respond("") | |
77 | return cmd != '' |
|
79 | return cmd != '' | |
78 |
|
80 | |||
@@ -84,7 +86,7 b' class sshserver(object):' | |||||
84 | except Exception, inst: |
|
86 | except Exception, inst: | |
85 | r = str(inst) |
|
87 | r = str(inst) | |
86 | success = 0 |
|
88 | success = 0 | |
87 |
|
|
89 | return "%s %s\n" % (success, r) | |
88 |
|
90 | |||
89 | def do_branchmap(self): |
|
91 | def do_branchmap(self): | |
90 | branchmap = self.repo.branchmap() |
|
92 | branchmap = self.repo.branchmap() | |
@@ -93,11 +95,11 b' class sshserver(object):' | |||||
93 | branchname = urllib.quote(branch) |
|
95 | branchname = urllib.quote(branch) | |
94 | branchnodes = [hex(node) for node in nodes] |
|
96 | branchnodes = [hex(node) for node in nodes] | |
95 | heads.append('%s %s' % (branchname, ' '.join(branchnodes))) |
|
97 | heads.append('%s %s' % (branchname, ' '.join(branchnodes))) | |
96 |
|
|
98 | return '\n'.join(heads) | |
97 |
|
99 | |||
98 | def do_heads(self): |
|
100 | def do_heads(self): | |
99 | h = self.repo.heads() |
|
101 | h = self.repo.heads() | |
100 |
|
|
102 | return " ".join(map(hex, h)) + "\n" | |
101 |
|
103 | |||
102 | def do_hello(self): |
|
104 | def do_hello(self): | |
103 | '''the hello command returns a set of lines describing various |
|
105 | '''the hello command returns a set of lines describing various | |
@@ -110,13 +112,13 b' class sshserver(object):' | |||||
110 | caps = copy.copy(self.caps) |
|
112 | caps = copy.copy(self.caps) | |
111 | if streamclone.allowed(self.repo.ui): |
|
113 | if streamclone.allowed(self.repo.ui): | |
112 | caps.append('stream=%d' % self.repo.changelog.version) |
|
114 | caps.append('stream=%d' % self.repo.changelog.version) | |
113 |
|
|
115 | return "capabilities: %s\n" % (' '.join(caps),) | |
114 |
|
116 | |||
115 | def do_lock(self): |
|
117 | def do_lock(self): | |
116 | '''DEPRECATED - allowing remote client to lock repo is not safe''' |
|
118 | '''DEPRECATED - allowing remote client to lock repo is not safe''' | |
117 |
|
119 | |||
118 | self.lock = self.repo.lock() |
|
120 | self.lock = self.repo.lock() | |
119 |
|
|
121 | return "" | |
120 |
|
122 | |||
121 | def do_unlock(self): |
|
123 | def do_unlock(self): | |
122 | '''DEPRECATED''' |
|
124 | '''DEPRECATED''' | |
@@ -124,7 +126,7 b' class sshserver(object):' | |||||
124 | if self.lock: |
|
126 | if self.lock: | |
125 | self.lock.release() |
|
127 | self.lock.release() | |
126 | self.lock = None |
|
128 | self.lock = None | |
127 |
|
|
129 | return "" | |
128 |
|
130 | |||
129 | def do_branches(self): |
|
131 | def do_branches(self): | |
130 | nodes = self.getarg('nodes') |
|
132 | nodes = self.getarg('nodes') | |
@@ -132,7 +134,7 b' class sshserver(object):' | |||||
132 | r = [] |
|
134 | r = [] | |
133 | for b in self.repo.branches(nodes): |
|
135 | for b in self.repo.branches(nodes): | |
134 | r.append(" ".join(map(hex, b)) + "\n") |
|
136 | r.append(" ".join(map(hex, b)) + "\n") | |
135 |
|
|
137 | return "".join(r) | |
136 |
|
138 | |||
137 | def do_between(self): |
|
139 | def do_between(self): | |
138 | pairs = self.getarg('pairs') |
|
140 | pairs = self.getarg('pairs') | |
@@ -140,7 +142,7 b' class sshserver(object):' | |||||
140 | r = [] |
|
142 | r = [] | |
141 | for b in self.repo.between(pairs): |
|
143 | for b in self.repo.between(pairs): | |
142 | r.append(" ".join(map(hex, b)) + "\n") |
|
144 | r.append(" ".join(map(hex, b)) + "\n") | |
143 |
|
|
145 | return "".join(r) | |
144 |
|
146 | |||
145 | def do_changegroup(self): |
|
147 | def do_changegroup(self): | |
146 | nodes = [] |
|
148 | nodes = [] | |
@@ -180,7 +182,7 b' class sshserver(object):' | |||||
180 | self.respond("") |
|
182 | self.respond("") | |
181 | r = self.repo.addchangegroup(self.fin, 'serve', self.client_url(), |
|
183 | r = self.repo.addchangegroup(self.fin, 'serve', self.client_url(), | |
182 | lock=self.lock) |
|
184 | lock=self.lock) | |
183 |
|
|
185 | return str(r) | |
184 |
|
186 | |||
185 | def client_url(self): |
|
187 | def client_url(self): | |
186 | client = os.environ.get('SSH_CLIENT', '').split(' ', 1)[0] |
|
188 | client = os.environ.get('SSH_CLIENT', '').split(' ', 1)[0] | |
@@ -246,11 +248,11 b' class sshserver(object):' | |||||
246 | def do_pushkey(self): |
|
248 | def do_pushkey(self): | |
247 | namespace, key, old, new = self.getargs('namespace key old new') |
|
249 | namespace, key, old, new = self.getargs('namespace key old new') | |
248 | r = pushkey.push(self.repo, namespace, key, old, new) |
|
250 | r = pushkey.push(self.repo, namespace, key, old, new) | |
249 |
|
|
251 | return '%s\n' % int(r) | |
250 |
|
252 | |||
251 | def do_listkeys(self): |
|
253 | def do_listkeys(self): | |
252 | namespace = self.getarg('namespace') |
|
254 | namespace = self.getarg('namespace') | |
253 | d = pushkey.list(self.repo, namespace).items() |
|
255 | d = pushkey.list(self.repo, namespace).items() | |
254 | t = '\n'.join(['%s\t%s' % (k.encode('string-escape'), |
|
256 | t = '\n'.join(['%s\t%s' % (k.encode('string-escape'), | |
255 | v.encode('string-escape')) for k, v in d]) |
|
257 | v.encode('string-escape')) for k, v in d]) | |
256 |
|
|
258 | return t |
General Comments 0
You need to be logged in to leave comments.
Login now