diff -r 9a813e703172 -r 372f4772f7a0 mercurial/bundle2.py --- a/mercurial/bundle2.py Mon Apr 21 15:59:55 2014 -0700 +++ b/mercurial/bundle2.py Mon Apr 21 19:42:40 2014 -0700 @@ -170,6 +170,10 @@ """ return '>'+('BB'*nbparams) +class UnknownPartError(KeyError): + """error raised when no handler is found for a Mandatory part""" + pass + parthandlermapping = {} def parthandler(parttype): @@ -297,7 +301,7 @@ if key != parttype: # mandatory parts # todo: # - use a more precise exception - raise + raise UnknownPartError(key) op.ui.debug('ignoring unknown advisory part %r\n' % key) # consuming the part part.read()