fileset: actually implement 'minusset' stable
authorPatrick Mezard <patrick@mezard.eu>
Wed, 15 Aug 2012 19:02:04 +0200
branchstable
changeset 17363 5d9e2031c0b1
parent 17362 bd867a9ca510
child 17364 0c41fb2d972a
fileset: actually implement 'minusset' $ hg debugfileset 'a* - a1' was tracing back because 'minus' symbol was not supported.
mercurial/fileset.py
tests/test-fileset.t
--- a/mercurial/fileset.py	Wed Aug 15 17:39:03 2012 +0200
+++ b/mercurial/fileset.py	Wed Aug 15 19:02:04 2012 +0200
@@ -107,6 +107,11 @@
     s = set(getset(mctx, x))
     return [r for r in mctx.subset if r not in s]
 
+def minusset(mctx, x, y):
+    xl = getset(mctx, x)
+    yl = set(getset(mctx, y))
+    return [f for f in xl if f not in yl]
+
 def listset(mctx, a, b):
     raise error.ParseError(_("can't use a list in this context"))
 
@@ -406,6 +411,7 @@
     'symbol': stringset,
     'and': andset,
     'or': orset,
+    'minus': minusset,
     'list': listset,
     'group': getset,
     'not': notset,
--- a/tests/test-fileset.t	Wed Aug 15 17:39:03 2012 +0200
+++ b/tests/test-fileset.t	Wed Aug 15 19:02:04 2012 +0200
@@ -36,4 +36,6 @@
   b1
   $ fileset '! ("a*")'
   b1
+  $ fileset 'a* - a1'
+  a2