Mercurial > hg
comparison mercurial/httprepo.py @ 7010:9141bebefe3e
enhance the error output in case of failure during http push
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Mon, 08 Sep 2008 14:22:14 +0200 |
parents | dbb00e91c327 |
children | fe0a4ed4634f |
comparison
equal
deleted
inserted
replaced
7009:3d54cf97598d | 7010:9141bebefe3e |
---|---|
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: |