comparison mercurial/sshserver.py @ 11584:1af96b090116

protocol: unify changegroup commands - add sendchangegroup protocol helpers - handle commands with None results - move changegroup commands into wireproto.py
author Matt Mackall <mpm@selenic.com>
date Wed, 14 Jul 2010 15:43:20 -0500
parents 4530b3307fb9
children 5d907fbb9703
comparison
equal deleted inserted replaced
11583:944c23762c3c 11584:1af96b090116
56 def respond(self, v): 56 def respond(self, v):
57 self.fout.write("%d\n" % len(v)) 57 self.fout.write("%d\n" % len(v))
58 self.fout.write(v) 58 self.fout.write(v)
59 self.fout.flush() 59 self.fout.flush()
60 60
61 def sendchangegroup(self, changegroup):
62 while True:
63 d = changegroup.read(4096)
64 if not d:
65 break
66 self.fout.write(d)
67
68 self.fout.flush()
69
61 def serve_forever(self): 70 def serve_forever(self):
62 try: 71 try:
63 while self.serve_one(): 72 while self.serve_one():
64 pass 73 pass
65 finally: 74 finally:
102 111
103 if self.lock: 112 if self.lock:
104 self.lock.release() 113 self.lock.release()
105 self.lock = None 114 self.lock = None
106 return "" 115 return ""
107
108 def do_changegroup(self):
109 nodes = []
110 roots = self.getarg('roots')
111 nodes = map(bin, roots.split(" "))
112
113 cg = self.repo.changegroup(nodes, 'serve')
114 while True:
115 d = cg.read(4096)
116 if not d:
117 break
118 self.fout.write(d)
119
120 self.fout.flush()
121
122 def do_changegroupsubset(self):
123 bases, heads = self.getargs('bases heads')
124 bases = [bin(n) for n in bases.split(' ')]
125 heads = [bin(n) for n in heads.split(' ')]
126
127 cg = self.repo.changegroupsubset(bases, heads, 'serve')
128 while True:
129 d = cg.read(4096)
130 if not d:
131 break
132 self.fout.write(d)
133
134 self.fout.flush()
135 116
136 def do_addchangegroup(self): 117 def do_addchangegroup(self):
137 '''DEPRECATED''' 118 '''DEPRECATED'''
138 119
139 if not self.lock: 120 if not self.lock: