Changeset - daf282efa2da
[Not reviewed]
default
0 1 0
Mads Kiilerich - 7 years ago 2018-08-05 23:16:43
mads@kiilerich.com
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.
1 file changed with 7 insertions and 4 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/vcs/backends/hg/repository.py
Show inline comments
 
@@ -422,11 +422,16 @@ class MercurialRepository(BaseRepository
 
        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 @@ class MercurialRepository(BaseRepository
 
            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.
0 comments (0 inline, 0 general)