Mercurial > kallithea
changeset 8298:7a939ea3510a
hg: handle Mercurial RepoError correctly in is_valid_repo_uri
RepoError would be leaked by is_valid_repo_uri.
Now, when for example validating an ssh URL without having the ssh client
binary, it will be shown/logged as:
remote: /bin/sh: ssh: command not found
2020-03-17 17:28:53.907 WARNI [kallithea.model.validators] validation of clone URL 'ssh://no-ssh.com/' failed: Mercurial RepoError: no suitable response from remote hg
and shown in the UI as 'Invalid repository URL'.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 17 Mar 2020 17:29:57 +0100 |
parents | 2fa9f497faac |
children | 6f9970a36190 |
files | kallithea/lib/utils.py |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/lib/utils.py Tue Mar 17 17:15:59 2020 +0100 +++ b/kallithea/lib/utils.py Tue Mar 17 17:29:57 2020 +0100 @@ -36,6 +36,7 @@ import beaker.cache import mercurial.config +import mercurial.error import mercurial.ui import kallithea.config.conf @@ -235,6 +236,8 @@ MercurialRepository._check_url(url, ui) except urllib.error.URLError as e: raise InvalidCloneUriException('URI %s URLError: %s' % (url, e)) + except mercurial.error.RepoError as e: + raise InvalidCloneUriException('Mercurial %s: %s' % (type(e).__name__, safe_str(bytes(e)))) elif url.startswith('svn+http'): try: from hgsubversion.svnrepo import svnremoterepo