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: