diff -r 457492741007 -r 5b26d82e4e2a mercurial/bundle2.py --- a/mercurial/bundle2.py Wed May 28 15:57:23 2014 -0700 +++ b/mercurial/bundle2.py Tue May 27 11:49:48 2014 -0700 @@ -174,7 +174,7 @@ parthandlermapping = {} -def parthandler(parttype): +def parthandler(parttype, params=()): """decorator that register a function as a bundle2 part handler eg:: @@ -188,6 +188,7 @@ lparttype = parttype.lower() # enforce lower case matching. assert lparttype not in parthandlermapping parthandlermapping[lparttype] = func + func.params = frozenset(params) return func return _decorator @@ -839,7 +840,7 @@ raise error.BundleValueError(**kwargs) -@parthandler('b2x:error:pushraced') +@parthandler('b2x:error:pushraced', ('message',)) def handlereplycaps(op, inpart): """Used to transmit push race error over the wire""" raise error.ResponseError(_('push failed:'), inpart.params['message'])