[PATCH 1 of 8 py3] bundle2: raise a more helpful error if building a bundle part header fails
Augie Fackler
raf at durin42.com
Sat Sep 16 11:08:07 EDT 2017
> On Sep 16, 2017, at 7:54 AM, Yuya Nishihara <yuya at tcha.org> wrote:
>
> On Fri, 15 Sep 2017 19:14:04 -0400, Augie Fackler wrote:
>> # HG changeset patch
>> # User Augie Fackler <raf at durin42.com>
>> # Date 1505515049 14400
>> # Fri Sep 15 18:37:29 2017 -0400
>> # Node ID 662bbd6d96952985eff807f424dd128663724672
>> # Parent 209120041d12b524648fa856732aa404dfedd91d
>> bundle2: raise a more helpful error if building a bundle part header fails
>>
>> I've tripped on this several times now, and am tired of debugging. Now
>> the header parts are part of the error message when the ''.join()
>> fails, which makes debugging obvious.
>>
>> diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
>> --- a/mercurial/bundle2.py
>> +++ b/mercurial/bundle2.py
>> @@ -1050,7 +1050,11 @@ class bundlepart(object):
>> header.append(key)
>> header.append(value)
>> ## finalize header
>> - headerchunk = ''.join(header)
>> + try:
>> + headerchunk = ''.join(header)
>> + except TypeError:
>> + raise TypeError(u'Found a non-bytes trying to '
>> + u'build bundle part header: %r' % header)
>
> I was making it a r'' string, but probably ProgrammingError would be better.
I was conflicted on this one. Preserving the type of the exception seemed reasonable, since this can only happen with weird bugs, but it’s also something I can just sit on for a while as a debugging aid.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20170916/91ebfd5e/attachment.html>
More information about the Mercurial-devel
mailing list