Mercurial > kallithea
changeset 7345:daf282efa2da
hg: be more strict about which kinds of revision lookup we want from hg
Comply with
https://www.mercurial-scm.org/repo/hg/file/4.6/mercurial/context.py#l380
to support recent Mercurial versions.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 05 Aug 2018 23:16:43 +0200 |
parents | b6b3c6dc49aa |
children | 86b16171af1f |
files | kallithea/lib/vcs/backends/hg/repository.py |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/lib/vcs/backends/hg/repository.py Sun Aug 05 23:16:23 2018 +0200 +++ b/kallithea/lib/vcs/backends/hg/repository.py Sun Aug 05 23:16:43 2018 +0200 @@ -422,11 +422,16 @@ if self._empty: raise EmptyRepositoryError("There are no changesets yet") - if revision in [-1, 'tip', None]: + if revision in [-1, None]: revision = 'tip' try: - revision = self._repo[revision].hex() + if isinstance(revision, int): + return self._repo[revision].hex() + try: + return scmutil.revsymbol(self._repo, revision).hex() + except AttributeError: # revsymbol was introduced in Mercurial 4.6 + return self._repo[revision].hex() except (IndexError, ValueError, RepoLookupError, TypeError): msg = ("Revision %s does not exist for %s" % (revision, self)) raise ChangesetDoesNotExistError(msg) @@ -434,8 +439,6 @@ msg = ("Ambiguous identifier `%s` for %s" % (revision, self)) raise ChangesetDoesNotExistError(msg) - return revision - def get_ref_revision(self, ref_type, ref_name): """ Returns revision number for the given reference.