130 l = self.pipei.readline() |
130 l = self.pipei.readline() |
131 self.readerr() |
131 self.readerr() |
132 try: |
132 try: |
133 l = int(l) |
133 l = int(l) |
134 except: |
134 except: |
135 self.raise_(util.UnexpectedOutput(_("unexpected response:"), l)) |
135 self.raise_(error.ResponseError(_("unexpected response:"), l)) |
136 return self.pipei.read(l) |
136 return self.pipei.read(l) |
137 |
137 |
138 def _send(self, data, flush=False): |
138 def _send(self, data, flush=False): |
139 self.pipeo.write("%d\n" % len(data)) |
139 self.pipeo.write("%d\n" % len(data)) |
140 if data: |
140 if data: |
162 def heads(self): |
162 def heads(self): |
163 d = self.call("heads") |
163 d = self.call("heads") |
164 try: |
164 try: |
165 return map(bin, d[:-1].split(" ")) |
165 return map(bin, d[:-1].split(" ")) |
166 except: |
166 except: |
167 self.raise_(util.UnexpectedOutput(_("unexpected response:"), d)) |
167 self.raise_(error.ResponseError(_("unexpected response:"), d)) |
168 |
168 |
169 def branches(self, nodes): |
169 def branches(self, nodes): |
170 n = " ".join(map(hex, nodes)) |
170 n = " ".join(map(hex, nodes)) |
171 d = self.call("branches", nodes=n) |
171 d = self.call("branches", nodes=n) |
172 try: |
172 try: |
173 br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ] |
173 br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ] |
174 return br |
174 return br |
175 except: |
175 except: |
176 self.raise_(util.UnexpectedOutput(_("unexpected response:"), d)) |
176 self.raise_(error.ResponseError(_("unexpected response:"), d)) |
177 |
177 |
178 def between(self, pairs): |
178 def between(self, pairs): |
179 n = " ".join(["-".join(map(hex, p)) for p in pairs]) |
179 n = " ".join(["-".join(map(hex, p)) for p in pairs]) |
180 d = self.call("between", pairs=n) |
180 d = self.call("between", pairs=n) |
181 try: |
181 try: |
182 p = [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ] |
182 p = [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ] |
183 return p |
183 return p |
184 except: |
184 except: |
185 self.raise_(util.UnexpectedOutput(_("unexpected response:"), d)) |
185 self.raise_(error.ResponseError(_("unexpected response:"), d)) |
186 |
186 |
187 def changegroup(self, nodes, kind): |
187 def changegroup(self, nodes, kind): |
188 n = " ".join(map(hex, nodes)) |
188 n = " ".join(map(hex, nodes)) |
189 return self.do_cmd("changegroup", roots=n) |
189 return self.do_cmd("changegroup", roots=n) |
190 |
190 |
215 |
215 |
216 r = self._recv() |
216 r = self._recv() |
217 try: |
217 try: |
218 return int(r) |
218 return int(r) |
219 except: |
219 except: |
220 self.raise_(util.UnexpectedOutput(_("unexpected response:"), r)) |
220 self.raise_(error.ResponseError(_("unexpected response:"), r)) |
221 |
221 |
222 def addchangegroup(self, cg, source, url): |
222 def addchangegroup(self, cg, source, url): |
223 d = self.call("addchangegroup") |
223 d = self.call("addchangegroup") |
224 if d: |
224 if d: |
225 self.raise_(error.RepoError(_("push refused: %s") % d)) |
225 self.raise_(error.RepoError(_("push refused: %s") % d)) |