Mercurial > public > mercurial-scm > hg
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: |