--- a/mercurial/sshrepo.py Thu Jun 15 13:27:57 2006 -0700
+++ b/mercurial/sshrepo.py Thu Jun 15 16:37:23 2006 -0700
@@ -141,11 +141,36 @@
f = self.do_cmd("changegroup", roots=n)
return self.pipei
+ def unbundle(self, cg, heads, source):
+ d = self.call("unbundle", heads=' '.join(map(hex, heads)))
+ if d:
+ raise hg.RepoError(_("push refused: %s") % d)
+
+ while 1:
+ d = cg.read(4096)
+ if not d: break
+ self.pipeo.write(str(len(d)) + '\n')
+ self.pipeo.write(d)
+ self.readerr()
+
+ self.pipeo.write('0\n')
+ self.pipeo.flush()
+
+ self.readerr()
+ d = self.pipei.readline()
+ if d != '\n':
+ return 1
+
+ l = int(self.pipei.readline())
+ r = self.pipei.read(l)
+ if not r:
+ return 1
+ return int(r)
+
def addchangegroup(self, cg, source):
d = self.call("addchangegroup")
if d:
- raise hg.RepoError(_("push refused: %s"), d)
-
+ raise hg.RepoError(_("push refused: %s") % d)
while 1:
d = cg.read(4096)
if not d: break