diff -r fb04372d7b38 -r a5192774e925 mercurial/bundle2.py --- a/mercurial/bundle2.py Fri Jun 05 13:31:18 2015 -0700 +++ b/mercurial/bundle2.py Wed May 27 23:48:54 2015 -0700 @@ -1330,8 +1330,11 @@ rpart.addparam('in-reply-to', str(inpart.id), mandatory=False) rpart.addparam('return', '%i' % ret, mandatory=False) if inpart.mandatory and not ret: - raise util.Abort(_('failed to update value for "%s/%s"') - % (namespace, key)) + kwargs = {} + for key in ('namespace', 'key', 'new', 'old', 'ret'): + if key in inpart.params: + kwargs[key] = inpart.params[key] + raise error.PushkeyFailed(partid=str(inpart.id), **kwargs) @parthandler('reply:pushkey', ('return', 'in-reply-to')) def handlepushkeyreply(op, inpart):