diff --git a/kallithea/lib/vcs/backends/hg/inmemory.py b/kallithea/lib/vcs/backends/hg/inmemory.py --- a/kallithea/lib/vcs/backends/hg/inmemory.py +++ b/kallithea/lib/vcs/backends/hg/inmemory.py @@ -47,12 +47,7 @@ class MercurialInMemoryChangeset(BaseInM # 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: diff --git a/kallithea/lib/vcs/utils/hgcompat.py b/kallithea/lib/vcs/utils/hgcompat.py --- a/kallithea/lib/vcs/utils/hgcompat.py +++ b/kallithea/lib/vcs/utils/hgcompat.py @@ -30,20 +30,8 @@ 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 diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -57,7 +57,7 @@ requirements = [ "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", ]