Mercurial > hg-stable
changeset 21620:6eaa71b2a3cc
bundle2: introduce a parttype attribute to BundleValueError
We will use the Exception for more that just unknown part type.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 28 May 2014 15:51:19 -0700 |
parents | 292331e906d7 |
children | b6eb56a9335d |
files | mercurial/bundle2.py mercurial/error.py mercurial/wireproto.py |
diffstat | 3 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundle2.py Tue May 27 10:32:07 2014 -0700 +++ b/mercurial/bundle2.py Wed May 28 15:51:19 2014 -0700 @@ -299,7 +299,7 @@ if key != parttype: # mandatory parts # todo: # - use a more precise exception - raise error.BundleValueError(key) + raise error.BundleValueError(parttype=key) op.ui.debug('ignoring unknown advisory part %r\n' % key) # consuming the part part.read() @@ -831,7 +831,8 @@ @parthandler('b2x:error:unsupportedcontent') def handlereplycaps(op, inpart): """Used to transmit unknown content error over the wire""" - raise error.BundleValueError(inpart.params['parttype']) + parttype = inpart.params['parttype'] + raise error.BundleValueError(parttype=parttype) @parthandler('b2x:error:pushraced') def handlereplycaps(op, inpart):
--- a/mercurial/error.py Tue May 27 10:32:07 2014 -0700 +++ b/mercurial/error.py Wed May 28 15:51:19 2014 -0700 @@ -103,7 +103,10 @@ """error raised when bundle2 cannot be processed Current main usecase is unsupported part types.""" - pass + + def __init__(self, parttype): + self.parttype = parttype + super(BundleValueError, self).__init__(parttype) class ReadOnlyPartError(RuntimeError): """error raised when code tries to alter a part being generated"""
--- a/mercurial/wireproto.py Tue May 27 10:32:07 2014 -0700 +++ b/mercurial/wireproto.py Wed May 28 15:51:19 2014 -0700 @@ -806,7 +806,7 @@ except error.BundleValueError, exc: bundler = bundle2.bundle20(repo.ui) errpart = bundler.newpart('B2X:ERROR:UNSUPPORTEDCONTENT') - errpart.addparam('parttype', str(exc)) + errpart.addparam('parttype', exc.parttype) return streamres(bundler.getchunks()) except util.Abort, inst: # The old code we moved used sys.stderr directly.