diff mercurial/bundle2.py @ 34249:ab379eed2e31

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.
author Augie Fackler <raf@durin42.com>
date Fri, 15 Sep 2017 18:37:29 -0400
parents 8e0358024a36
children e71890f27767
line wrap: on
line diff
--- a/mercurial/bundle2.py	Fri Sep 15 18:57:50 2017 +0200
+++ b/mercurial/bundle2.py	Fri Sep 15 18:37:29 2017 -0400
@@ -1050,7 +1050,11 @@
             header.append(key)
             header.append(value)
         ## finalize header
-        headerchunk = ''.join(header)
+        try:
+            headerchunk = ''.join(header)
+        except TypeError:
+            raise TypeError(r'Found a non-bytes trying to '
+                            r'build bundle part header: %r' % header)
         outdebug(ui, 'header chunk size: %i' % len(headerchunk))
         yield _pack(_fpartheadersize, len(headerchunk))
         yield headerchunk