Skip to content
Snippets Groups Projects
Commit e5b10a71 authored by Durham Goode's avatar Durham Goode
Browse files

ignore: update ignore logic to match upstream

Upstream mercurial has dropped the ignore module and replaced it with 'include:'
patterns. Let's do the same in hggit.

Ran tests against Mercurial latest (6ac860f700b5) and Mercurial 3.4.
parent d153586c
No related branches found
No related tags found
No related merge requests found
......@@ -34,7 +34,12 @@
from mercurial import extensions
from mercurial import help
from mercurial import hg
from mercurial import ignore
try:
from mercurial import ignore
ignoremod = True
except ImportError:
# The ignore module disappeared in Mercurial 3.5
ignoremod = False
from mercurial import localrepo
from mercurial import manifest
from mercurial.node import hex
......@@ -164,6 +169,6 @@
return verify.verify(ui, repo, ctx)
if (getattr(dirstate, 'rootcache', False) and
getattr(ignore, 'readpats', False)):
(not ignoremod or getattr(ignore, 'readpats', False))):
# only install our dirstate wrapper if it has a hope of working
import gitdirstate
......@@ -168,6 +173,9 @@
# only install our dirstate wrapper if it has a hope of working
import gitdirstate
extensions.wrapfunction(ignore, 'ignore', gitdirstate.gignore)
if ignoremod:
def ignorewrap(orig, *args, **kwargs):
return gitdirstate.gignore(*args, **kwargs)
extensions.wrapfunction(ignore, 'ignore', ignorewrap)
dirstate.dirstate = gitdirstate.gitdirstate
@command('git-cleanup')
......
......@@ -4,7 +4,12 @@
import errno
from mercurial import dirstate
from mercurial import ignore
try:
from mercurial import ignore
ignoremod = True
except:
# ignore module was removed in Mercurial 3.5
ignoremod = False
from mercurial import match as matchmod
from mercurial import osutil
from mercurial import scmutil
......@@ -62,6 +67,5 @@
return patterns, warnings
def gignore(orig, root, files, warn, extrapatterns=None):
pats = ignore.readpats(root, files, warn)
def gignore(root, files, warn, extrapatterns=None):
allpats = []
......@@ -67,3 +71,11 @@
allpats = []
pats = []
if ignoremod:
pats = ignore.readpats(root, files, warn)
for f, patlist in pats:
allpats.extend(patlist)
else:
allpats.extend(['include:%s' % f for f in files])
if extrapatterns:
allpats.extend(extrapatterns)
......@@ -68,7 +80,5 @@
if extrapatterns:
allpats.extend(extrapatterns)
for f, patlist in pats:
allpats.extend(patlist)
if not allpats:
return util.never
try:
......@@ -110,7 +120,7 @@
for warning in warnings:
self._ui.warn("%s: %s\n" % (fn, warning))
patterns.extend(pats)
return ignore.ignore(self._root, files, self._ui.warn,
return gignore(self._root, files, self._ui.warn,
extrapatterns=patterns)
def _finddotgitignores(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment