# HG changeset patch # User Matt Mackall # Date 1308434029 18000 # Node ID 6ab8b17adc03c423b53fb50951058915edc4ca60 # Parent 394121d9f4fc5e875ff7e13455203ac289c6cdbb fileset: add a help topic Add crosslinking with patterns topic. diff -r 394121d9f4fc -r 6ab8b17adc03 mercurial/help.py --- a/mercurial/help.py Sat Jun 18 16:53:49 2011 -0500 +++ b/mercurial/help.py Sat Jun 18 16:53:49 2011 -0500 @@ -7,7 +7,7 @@ from i18n import gettext, _ import sys, os -import extensions, revset, templatekw, templatefilters +import extensions, revset, fileset, templatekw, templatefilters import util def listexts(header, exts, indent=1): @@ -61,6 +61,7 @@ (['mrevs', 'multirevs'], _('Specifying Multiple Revisions'), loaddoc('multirevs')), (['revset', 'revsets'], _("Specifying Revision Sets"), loaddoc('revsets')), + (['fileset', 'filesets'], _("Specifying File Sets"), loaddoc('filesets')), (['diffs'], _('Diff Formats'), loaddoc('diffs')), (['merge-tools'], _('Merge Tools'), loaddoc('merge-tools')), (['templating', 'templates'], _('Template Usage'), @@ -102,6 +103,7 @@ return makeitemsdoc(topic, doc, marker, symbols) addtopichook(topic, add) +addtopicsymbols('filesets', '.. predicatesmarker', fileset.symbols) addtopicsymbols('revsets', '.. predicatesmarker', revset.symbols) addtopicsymbols('templates', '.. keywordsmarker', templatekw.keywords) addtopicsymbols('templates', '.. filtersmarker', templatefilters.filters) diff -r 394121d9f4fc -r 6ab8b17adc03 mercurial/help/filesets.txt --- /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`. diff -r 394121d9f4fc -r 6ab8b17adc03 mercurial/help/patterns.txt --- a/mercurial/help/patterns.txt Sat Jun 18 16:53:49 2011 -0500 +++ b/mercurial/help/patterns.txt Sat Jun 18 16:53:49 2011 -0500 @@ -49,3 +49,5 @@ listfile:list.txt read list from list.txt with one file pattern per line listfile0:list.txt read list from list.txt with null byte delimiters + +See also :hg:`help filesets`. diff -r 394121d9f4fc -r 6ab8b17adc03 tests/test-globalopts.t --- a/tests/test-globalopts.t Sat Jun 18 16:53:49 2011 -0500 +++ b/tests/test-globalopts.t Sat Jun 18 16:53:49 2011 -0500 @@ -338,6 +338,7 @@ diffs Diff Formats environment Environment Variables extensions Using additional features + filesets Specifying File Sets glossary Glossary hgignore syntax for Mercurial ignore files hgweb Configuring hgweb @@ -418,6 +419,7 @@ diffs Diff Formats environment Environment Variables extensions Using additional features + filesets Specifying File Sets glossary Glossary hgignore syntax for Mercurial ignore files hgweb Configuring hgweb diff -r 394121d9f4fc -r 6ab8b17adc03 tests/test-help.t --- a/tests/test-help.t Sat Jun 18 16:53:49 2011 -0500 +++ b/tests/test-help.t Sat Jun 18 16:53:49 2011 -0500 @@ -108,6 +108,7 @@ diffs Diff Formats environment Environment Variables extensions Using additional features + filesets Specifying File Sets glossary Glossary hgignore syntax for Mercurial ignore files hgweb Configuring hgweb @@ -182,6 +183,7 @@ diffs Diff Formats environment Environment Variables extensions Using additional features + filesets Specifying File Sets glossary Glossary hgignore syntax for Mercurial ignore files hgweb Configuring hgweb @@ -699,6 +701,7 @@ diffs Diff Formats environment Environment Variables extensions Using additional features + filesets Specifying File Sets glossary Glossary hgignore syntax for Mercurial ignore files hgweb Configuring hgweb