diff -r 7b73bf1a48d4 -r 88572b7e50fd mercurial/debugcommands.py --- a/mercurial/debugcommands.py Tue Dec 12 18:22:11 2017 +0100 +++ b/mercurial/debugcommands.py Thu Dec 14 22:07:46 2017 +0900 @@ -2086,10 +2086,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"))