Mercurial > hg
diff hgext/lfs/__init__.py @ 38689:ff5b6fca1082
fileset: rewrite predicates to return matcher not closed to subset (API) (BC)
This makes fileset expression open to any input, so that we can just say
"hg status 'set: not binary()'" to select text files including unknowns.
With this and removal of subset computation, 'set:**' becomes as fast as
'glob:**'. Further optimization will probably be possible by narrowing the
file tree to compute status for example.
This also fixes 'subrepo()' to not ignore the current mctx.subset.
.. bc::
The fileset expression may include untracked files by default. Use
``tracked()`` to explicitly filter out files not existing at the context
revision.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 09 Jun 2018 19:55:10 +0900 |
parents | b4d85bc122bd |
children | 7790cd70842a 535fc8a22365 |
line wrap: on
line diff
--- a/hgext/lfs/__init__.py Tue Jul 10 23:49:48 2018 +0900 +++ b/hgext/lfs/__init__.py Sat Jun 09 19:55:10 2018 +0900 @@ -362,8 +362,10 @@ """File that uses LFS storage.""" # i18n: "lfs" is a keyword fileset.getargs(x, 0, 0, _("lfs takes no arguments")) - return [f for f in mctx.subset - if wrapper.pointerfromctx(mctx.ctx, f, removed=True) is not None] + ctx = mctx.ctx + def lfsfilep(f): + return wrapper.pointerfromctx(ctx, f, removed=True) is not None + return mctx.predicate(lfsfilep, predrepr='<lfs>') @templatekeyword('lfs_files', requires={'ctx'}) def lfsfiles(context, mapping):