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):