Mercurial > hg-git
diff hggit/gitdirstate.py @ 907:e5b10a710036
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.
author | Durham Goode <durham@fb.com> |
---|---|
date | Thu, 28 May 2015 12:40:49 -0700 |
parents | 0d258c2d0e91 |
children | 67b27ec080ae |
line wrap: on
line diff
--- a/hggit/gitdirstate.py Thu May 14 12:51:37 2015 -0700 +++ b/hggit/gitdirstate.py Thu May 28 12:40:49 2015 -0700 @@ -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,13 +67,18 @@ 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 = [] + 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) - 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):