Mercurial > hg
comparison mercurial/bundle2.py @ 21186:9f3652e851f8 stable
bundle2: gracefully handle PushRaced error during unbundle
Same drill again. We catch the PushRaced error, check if it cames from
a bundle2 processing, if so we turn it into a bundle2 with a part
transporting error information to be reraised client side.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 21 Apr 2014 17:51:58 -0700 |
parents | 5b3717e1a3ea |
children | 1daad9dcdba2 |
comparison
equal
deleted
inserted
replaced
21185:5b3717e1a3ea | 21186:9f3652e851f8 |
---|---|
758 @parthandler('b2x:error:unknownpart') | 758 @parthandler('b2x:error:unknownpart') |
759 def handlereplycaps(op, inpart): | 759 def handlereplycaps(op, inpart): |
760 """Used to transmit unknown part error over the wire""" | 760 """Used to transmit unknown part error over the wire""" |
761 manargs = dict(inpart.mandatoryparams) | 761 manargs = dict(inpart.mandatoryparams) |
762 raise UnknownPartError(manargs['parttype']) | 762 raise UnknownPartError(manargs['parttype']) |
763 | |
764 @parthandler('b2x:error:pushraced') | |
765 def handlereplycaps(op, inpart): | |
766 """Used to transmit push race error over the wire""" | |
767 manargs = dict(inpart.mandatoryparams) | |
768 raise error.ResponseError(_('push failed:'), manargs['message']) |