diff -r 44fd4cfc6c0a -r 786289423e97 mercurial/debugcommands.py --- a/mercurial/debugcommands.py Mon Dec 18 15:18:37 2017 -0800 +++ b/mercurial/debugcommands.py Tue Dec 19 16:27:24 2017 -0500 @@ -2223,10 +2223,12 @@ url = util.url(source) addr = None - if url.scheme == 'https': - addr = (url.host, url.port or 443) - elif url.scheme == 'ssh': - addr = (url.host, url.port or 22) + defaultport = {'https': 443, 'ssh': 22} + if url.scheme in defaultport: + try: + addr = (url.host, int(url.port or defaultport[url.scheme])) + except ValueError: + raise error.Abort(_("malformed port number in URL")) else: raise error.Abort(_("only https and ssh connections are supported"))