Mercurial > hg
changeset 35692:a62b08f6626b
fileset: do not crash by unary negate operation
Backported from minifileset.py.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 13 Jan 2018 15:13:29 +0900 |
parents | 735f47b41521 |
children | 1880a0bdfc5e |
files | mercurial/fileset.py tests/test-fileset.t |
diffstat | 2 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/fileset.py Sat Jan 13 15:07:37 2018 +0900 +++ b/mercurial/fileset.py Sat Jan 13 15:13:29 2018 +0900 @@ -136,6 +136,9 @@ yl = set(getset(mctx, y)) return [f for f in xl if f not in yl] +def negateset(mctx, x): + raise error.ParseError(_("can't use negate operator in this context")) + def listset(mctx, a, b): raise error.ParseError(_("can't use a list in this context"), hint=_('see hg help "filesets.x or y"')) @@ -523,6 +526,7 @@ 'and': andset, 'or': orset, 'minus': minusset, + 'negate': negateset, 'list': listset, 'group': getset, 'not': notset,
--- a/tests/test-fileset.t Sat Jan 13 15:07:37 2018 +0900 +++ b/tests/test-fileset.t Sat Jan 13 15:13:29 2018 +0900 @@ -68,6 +68,17 @@ None) hg: parse error: not a symbol [255] + $ fileset -v -- '-x' + (negate + (symbol 'x')) + hg: parse error: can't use negate operator in this context + [255] + $ fileset -v -- '-()' + (negate + (group + None)) + hg: parse error: can't use negate operator in this context + [255] Test files status