Changeset - 0572d5d132c2
[Not reviewed]
default
0 3 0
Mads Kiilerich - 6 years ago 2019-05-26 23:20:58
mads@kiilerich.com
setup: bump Mercurial minimum version to 4.5 - that allow us to drop some hacks, and it was released more than one year ago
3 files changed with 7 insertions and 43 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/vcs/backends/hg/changeset.py
Show inline comments
 
@@ -14,7 +14,7 @@ from kallithea.lib.vcs.nodes import (
 
from kallithea.lib.vcs.utils import safe_str, safe_unicode, date_fromtimestamp
 
from kallithea.lib.vcs.utils.lazy import LazyProperty
 
from kallithea.lib.vcs.utils.paths import get_dirs_for_path
 
from kallithea.lib.vcs.utils.hgcompat import archival, hex
 
from kallithea.lib.vcs.utils.hgcompat import archival, hex, obsutil
 

	
 
from mercurial import obsolete
 

	
 
@@ -88,13 +88,7 @@ class MercurialChangeset(BaseChangeset):
 

	
 
    @LazyProperty
 
    def successors(self):
 
        try:
 
            # This works starting from Mercurial 4.3: the function `successorssets` was moved to the mercurial.obsutil module and gained the `closest` parameter.
 
            from mercurial import obsutil
 
            successors = obsutil.successorssets(self._ctx._repo, self._ctx.node(), closest=True)
 
        except ImportError:
 
            # fallback for older versions
 
            successors = obsolete.successorssets(self._ctx._repo, self._ctx.node())
 
        successors = obsutil.successorssets(self._ctx._repo, self._ctx.node(), closest=True)
 
        if successors:
 
            # flatten the list here handles both divergent (len > 1)
 
            # and the usual case (len = 1)
 
@@ -104,19 +98,7 @@ class MercurialChangeset(BaseChangeset):
 

	
 
    @LazyProperty
 
    def predecessors(self):
 
        try:
 
            # This works starting from Mercurial 4.3: the function `closestpredecessors` was added.
 
            from mercurial import obsutil
 
            return [hex(n)[:12] for n in obsutil.closestpredecessors(self._ctx._repo, self._ctx.node())]
 
        except ImportError:
 
            # fallback for older versions
 
            predecessors = set()
 
            nm = self._ctx._repo.changelog.nodemap
 
            for p in self._ctx._repo.obsstore.precursors.get(self._ctx.node(), ()):
 
                pr = nm.get(p[0])
 
                if pr is not None:
 
                    predecessors.add(hex(p[0])[:12])
 
            return predecessors
 
        return [hex(n)[:12] for n in obsutil.closestpredecessors(self._ctx._repo, self._ctx.node())]
 

	
 
    @LazyProperty
 
    def bookmarks(self):
 
@@ -320,10 +302,7 @@ class MercurialChangeset(BaseChangeset):
 
        try:
 
            annotation_lines = [(annotateline.fctx, annotateline.text) for annotateline in annotations]
 
        except AttributeError: # annotateline was introduced in Mercurial 4.6 (b33b91ca2ec2)
 
            try:
 
                annotation_lines = [(aline.fctx, l) for aline, l in annotations]
 
            except AttributeError: # aline.fctx was introduced in Mercurial 4.4
 
                annotation_lines = [(aline[0], l) for aline, l in annotations]
 
            annotation_lines = [(aline.fctx, l) for aline, l in annotations]
 
        for i, (fctx, l) in enumerate(annotation_lines):
 
            sha = fctx.hex()
 
            yield (i + 1, sha, lambda sha=sha, l=l: self.repository.get_changeset(sha), l)
kallithea/lib/vcs/utils/hgcompat.py
Show inline comments
 
@@ -12,9 +12,10 @@ from mercurial import localrepo
 
from mercurial import unionrepo
 
from mercurial import scmutil
 
from mercurial import config
 
from mercurial import tags as tagsmod
 
from mercurial.tags import tag
 
from mercurial import httppeer
 
from mercurial import sshpeer
 
from mercurial import obsutil
 
from mercurial.commands import clone, nullid, pull
 
from mercurial.context import memctx, memfilectx
 
from mercurial.error import RepoError, RepoLookupError, Abort
 
@@ -32,23 +33,7 @@ from mercurial.node import nullrev
 
from mercurial.url import httpbasicauthhandler, httpdigestauthhandler
 

	
 

	
 
# Mercurial 4.5 8a0cac20a1ad introduced an extra memctx changectx argument
 
# - introduce an optional wrapper factory that doesn't pass it on
 
import inspect
 
if inspect.getargspec(memfilectx.__init__).args[2] != 'changectx':
 
    __org_memfilectx = memfilectx
 
    memfilectx = lambda repo, changectx, *args, **kwargs: __org_memfilectx(repo, *args, **kwargs)
 

	
 

	
 
# workaround for 3.3 94ac64bcf6fe and not calling largefiles reposetup correctly
 
localrepo.localrepository._lfstatuswriters = [lambda *msg, **opts: None]
 
# 3.5 7699d3212994 added the invariant that repo.lfstatus must exist before hitting overridearchive
 
localrepo.localrepository.lfstatus = False
 

	
 
# Mercurial 4.2 moved tag from localrepo to the tags module
 
def tag(repo, *args):
 
    try:
 
        tag_f  = tagsmod.tag
 
    except AttributeError:
 
        return repo.tag(*args)
 
    tag_f(repo, *args)
setup.py
Show inline comments
 
@@ -57,7 +57,7 @@ requirements = [
 
    "URLObject >= 2.3.4, < 2.5",
 
    "Routes >= 1.13, < 2",
 
    "dulwich >= 0.14.1, < 0.20",
 
    "mercurial >= 4.1.1, < 4.10",
 
    "mercurial >= 4.5, < 4.10",
 
    "decorator >= 3.3.2, < 4.4",
 
    "Paste >= 2.0.3, < 3.1",
 
    "bleach >= 3.0, < 3.1",
0 comments (0 inline, 0 general)