# HG changeset patch # User Denis Laxalde # Date 2019-12-18 19:17:21 # Node ID b4c82b70418022e67cc0e69b1aa3c3aa43aa1d29 # Parent b06cf2809ec3486b25187ac2c8e766d6ac18763b py3: force bytestr conversion of "reason" in scmutil.callcatch() For instance, reason may be an InvalidURL as shown in added test. diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -262,7 +262,7 @@ def callcatch(ui, func): if isinstance(reason, pycompat.unicode): # SSLError of Python 2.7.9 contains a unicode reason = encoding.unitolocal(reason) - ui.error(_(b"abort: error: %s\n") % reason) + ui.error(_(b"abort: error: %s\n") % stringutil.forcebytestr(reason)) elif ( util.safehasattr(inst, b"args") and inst.args diff --git a/tests/test-clone.t b/tests/test-clone.t --- a/tests/test-clone.t +++ b/tests/test-clone.t @@ -614,6 +614,12 @@ No local source abort: repository a not found! [255] +Invalid URL + + $ hg clone http://invalid:url/a b + abort: error: nonnumeric port: 'url' + [255] + No remote source #if windows