Mercurial > public > mercurial-scm > hg-stable
diff mercurial/minifileset.py @ 38918:e79a69af1593
fileset: insert hints where status should be computed
This will allow us to compute status against a narrowed set of files.
For example, "path:build/ & (unknown() + missing())" is rewritten as
"path:build/ & <withstatus>(unknown() + missing(), 'unknown missing')",
and the status call can be narrowed by the left-hand-side matcher,
"path:build/".
mctx.buildstatus() calls will be solely processed by getmatchwithstatus().
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 21 Jul 2018 20:27:53 +0900 |
parents | 899b4c74209c |
children | 57875cf423c9 |
line wrap: on
line diff
--- a/mercurial/minifileset.py Sun Jul 22 11:12:55 2018 +0900 +++ b/mercurial/minifileset.py Sat Jul 21 20:27:53 2018 +0900 @@ -24,7 +24,9 @@ if not tree: raise error.ParseError(_("missing argument")) op = tree[0] - if op in {'symbol', 'string', 'kindpat'}: + if op == 'withstatus': + return _compile(tree[1]) + elif op in {'symbol', 'string', 'kindpat'}: name = filesetlang.getpattern(tree, {'path'}, _('invalid file pattern')) if name.startswith('**'): # file extension test, ex. "**.tar.gz" ext = name[2:]