Mercurial > public > mercurial-scm > hg-stable
diff mercurial/help/filesets.txt @ 14686:6ab8b17adc03
fileset: add a help topic
Add crosslinking with patterns topic.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 18 Jun 2011 16:53:49 -0500 |
parents | |
children | 968c301a1005 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/help/filesets.txt Sat Jun 18 16:53:49 2011 -0500 @@ -0,0 +1,65 @@ +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`.