# HG changeset patch # User Mads Kiilerich # Date 1533503803 -7200 # Node ID daf282efa2da3b8f2f244988cb62620465731cb2 # Parent b6b3c6dc49aa4cedf88591a5c30b3fbcb163117b 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. diff -r b6b3c6dc49aa -r daf282efa2da kallithea/lib/vcs/backends/hg/repository.py --- 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.