Changeset - 0e83a1bf6e49
[Not reviewed]
default
0 3 0
Mads Kiilerich - 8 years ago 2018-04-02 14:14:55
mads@kiilerich.com
setup: drop support for Mercurial < 4.0

There is little point in supporting Mercurial versions more than 2 years old.

Also, the old memfilectx hack gets in the way for a clean workaround for a new
API change.

Some further cleanups might be possible when we can assume Mercurial >= 4.0 .
3 files changed with 2 insertions and 19 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/vcs/backends/hg/inmemory.py
Show inline comments
 
@@ -44,18 +44,13 @@ class MercurialInMemoryChangeset(BaseInM
 
            Marks given path as added/changed/removed in a given _repo. This is
 
            for internal mercurial commit function.
 
            """
 

	
 
            # check if this path is removed
 
            if path in (node.path for node in self.removed):
 
                if getattr(memctx, '_returnnoneformissingfiles', False):
 
                    return None
 
                else:
 
                    # (hg < 3.2) Raising exception is the way to mark node for
 
                    # removal
 
                    raise IOError(errno.ENOENT, '%s is deleted' % path)
 
                return None
 

	
 
            # check if this path is added
 
            for node in self.added:
 
                if node.path == path:
 
                    return memfilectx(_repo, path=node.path,
 
                        data=(node.content.encode('utf8')
kallithea/lib/vcs/utils/hgcompat.py
Show inline comments
 
@@ -27,26 +27,14 @@ from mercurial.discovery import findcomm
 
from mercurial.hg import peer
 
from mercurial.httppeer import httppeer
 
from mercurial.sshpeer import sshpeer
 
from mercurial.util import url as hg_url
 
from mercurial.scmutil import revrange
 
from mercurial.node import nullrev
 

	
 
# those authhandlers are patched for python 2.6.5 bug an
 
# infinite looping when given invalid resources
 
from mercurial.url import httpbasicauthhandler, httpdigestauthhandler
 

	
 
import inspect
 
# Mercurial 3.1 503bb3af70fe
 
if inspect.getargspec(memfilectx.__init__).args[1] != 'repo':
 
    _org__init__ = memfilectx.__init__
 

	
 
    def _memfilectx__init__(self, repo, *a, **b):
 
        return _org__init__(self, *a, **b)
 
    memfilectx.__init__ = _memfilectx__init__
 

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

	
 
# Mercurial 4.2 moved tag from localrepo to the tags module
setup.py
Show inline comments
 
@@ -54,13 +54,13 @@ requirements = [
 
    "python-dateutil>=1.5.0,<2.0.0",
 
    "markdown==2.2.1",
 
    "docutils>=0.8.1",
 
    "URLObject==2.3.4",
 
    "Routes==1.13",
 
    "dulwich>=0.14.1",
 
    "mercurial>=2.9,<4.5",
 
    "mercurial>=4.0,<4.5",
 
    "decorator >= 3.3.2",
 
    "Paste >= 2.0.3, < 3.0",
 
]
 

	
 
if sys.version_info < (2, 7):
 
    requirements.append("importlib==1.0.1")
0 comments (0 inline, 0 general)