filesets.txt
65 lines
| 1.8 KiB
| text/plain
|
TextLexer
Matt Mackall
|
r14686 | Mercurial supports a functional language for selecting a set of | ||
files. | ||||
Like other file patterns, this pattern type is indicated by a prefix, | ||||
'set:'. The language supports a number of predicates which are joined | ||||
by infix operators. Parenthesis can be used for grouping. | ||||
Identifiers such as filenames or patterns must be quoted with single | ||||
or double quotes if they contain characters outside of | ||||
``[.*{}[]?/\_a-zA-Z0-9\x80-\xff]`` or if they match one of the | ||||
predefined predicates. This generally applies to file patterns other | ||||
than globs and arguments for predicates. | ||||
Special characters can be used in quoted identifiers by escaping them, | ||||
e.g., ``\n`` is interpreted as a newline. To prevent them from being | ||||
interpreted, strings can be prefixed with ``r``, e.g. ``r'...'``. | ||||
There is a single prefix operator: | ||||
``not x`` | ||||
Files not in x. Short form is ``! x``. | ||||
These are the supported infix operators: | ||||
``x and y`` | ||||
The intersection of files in x and y. Short form is ``x & y``. | ||||
``x or y`` | ||||
The union of files in x and y. There are two alternative short | ||||
forms: ``x | y`` and ``x + y``. | ||||
``x - y`` | ||||
Files in x but not in y. | ||||
The following predicates are supported: | ||||
.. predicatesmarker | ||||
Some sample queries: | ||||
- Show status of files that appear to be binary in the working directory:: | ||||
hg status -A "set:binary()" | ||||
- Forget files that are in .hgignore but are already tracked:: | ||||
hg forget "set:hgignore() and not ignored()" | ||||
- Find text files that contain a string:: | ||||
hg locate "set:grep(magic) and not binary()" | ||||
- Find C files in a non-standard encoding:: | ||||
hg locate "set:**.c and not encoding(ascii)" | ||||
- Revert copies of large binary files:: | ||||
hg revert "set:copied() and binary() and size('>1M')" | ||||
- Remove files listed in files.lst that contain the letter a or b:: | ||||
hg remove "set: 'listfile:foo.lst' and (**a* or **b*)" | ||||
See also :hg:`help patterns`. | ||||