420 |
420 |
421 tempname = changegroup.writebundle(cg, None, type) |
421 tempname = changegroup.writebundle(cg, None, type) |
422 fp = httpsendfile(tempname, "rb") |
422 fp = httpsendfile(tempname, "rb") |
423 try: |
423 try: |
424 try: |
424 try: |
425 rfp = self.do_cmd( |
425 resp = self.do_read( |
426 'unbundle', data=fp, |
426 'unbundle', data=fp, |
427 headers={'Content-Type': 'application/octet-stream'}, |
427 headers={'Content-Type': 'application/octet-stream'}, |
428 heads=' '.join(map(hex, heads))) |
428 heads=' '.join(map(hex, heads))) |
|
429 resp_code, output = resp.split('\n', 1) |
429 try: |
430 try: |
430 ret = int(rfp.readline()) |
431 ret = int(resp_code) |
431 self.ui.write(rfp.read()) |
432 except ValueError, err: |
432 return ret |
433 raise util.UnexpectedOutput( |
433 finally: |
434 _('push failed (unexpected response):'), resp) |
434 rfp.close() |
435 self.ui.write(output) |
|
436 return ret |
435 except socket.error, err: |
437 except socket.error, err: |
436 if err[0] in (errno.ECONNRESET, errno.EPIPE): |
438 if err[0] in (errno.ECONNRESET, errno.EPIPE): |
437 raise util.Abort(_('push failed: %s') % err[1]) |
439 raise util.Abort(_('push failed: %s') % err[1]) |
438 raise util.Abort(err[1]) |
440 raise util.Abort(err[1]) |
439 finally: |
441 finally: |