changeset 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 394121d9f4fc
children 15200b46165b c67c41af264c 219273cc548d
files mercurial/help.py mercurial/help/filesets.txt mercurial/help/patterns.txt tests/test-globalopts.t tests/test-help.t
diffstat 5 files changed, 75 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- /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`.
--- 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`.
--- 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
--- 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