# HG changeset patch # User Patrick Mezard # Date 1345050124 -7200 # Node ID 5d9e2031c0b10863f999a902c81f28d2e7597fb6 # Parent bd867a9ca51063654b6375b636d5a630b7e495a3 fileset: actually implement 'minusset' $ hg debugfileset 'a* - a1' was tracing back because 'minus' symbol was not supported. diff -r bd867a9ca510 -r 5d9e2031c0b1 mercurial/fileset.py --- 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, diff -r bd867a9ca510 -r 5d9e2031c0b1 tests/test-fileset.t --- 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