merge: force an exception message to bytes before printing as a warning
Caught by pytype:
File "/mnt/c/Users/Matt/hg/mercurial/merge.py", line 1346, in batchremove: Function _bytestr.__init__ was called with the wrong arguments [wrong-arg-types]
Expected: (self, ints: Iterable[int])
Actually passed: (self, ints: str)
Differential Revision: https://phab.mercurial-scm.org/D10177
--- a/mercurial/merge.py Thu Mar 11 18:09:55 2021 -0500
+++ b/mercurial/merge.py Thu Mar 11 18:33:39 2021 -0500
@@ -20,6 +20,7 @@
nullrev,
)
from .thirdparty import attr
+from .utils import stringutil
from . import (
copies,
encoding,
@@ -1341,7 +1342,7 @@
except OSError as inst:
repo.ui.warn(
_(b"update failed to remove %s: %s!\n")
- % (f, pycompat.bytestr(inst.strerror))
+ % (f, stringutil.forcebytestr(inst.strerror))
)
if i == 100:
yield i, f