Mercurial > public > mercurial-scm > hg-stable
diff mercurial/fileset.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 | 0f56d08e6271 |
children | 80fd7371f2d8 |
line wrap: on
line diff
--- a/mercurial/fileset.py Sun Jul 22 11:12:55 2018 +0900 +++ b/mercurial/fileset.py Sat Jul 21 20:27:53 2018 +0900 @@ -43,6 +43,9 @@ raise error.ParseError(_("missing argument")) return methods[x[0]](mctx, *x[1:]) +def getmatchwithstatus(mctx, x, hint): + return getmatch(mctx, x) + def stringmatch(mctx, x): return mctx.matcher([x]) @@ -443,6 +446,7 @@ return mctx.predicate(sstate.__contains__, predrepr='subrepo') methods = { + 'withstatus': getmatchwithstatus, 'string': stringmatch, 'symbol': stringmatch, 'kindpat': kindpatmatch,