##// END OF EJS Templates
registrar: add funcregistrar class to register function for specific purpose...
registrar: add funcregistrar class to register function for specific purpose This class centralizes the common logic to register function for specific purpose like below: - template keyword, filter and function - revset predicate - fileset predicate - webcommand 'funcregistrar' also formats help document of the function with the 'decl'(aration) specified at the construction. This can avoid (1) redundancy between 'decl' and help document, and (2) accidental typo of help document. For example, 'foo' should appear twice like below, if without such formatting: @keyword('foo') def foo(....): """:foo: Explanation of keyword foo ...""" Almost all cases needs very simple document formatting like below: - "``DECL``\n EXPLANATION" - ":DECL: EXPLANATION" But webcommand needs a little complicated formatting like: /PATH/SPEC ---------- EXPLANATION .... To make minirst recognize the section header, hyphen line should be as long as "/PATH/SPEC". It should be arranged by program. Implementing 'formatdoc()' in derived class can support complicated formatting in the latter case. But it seems redundant for simple one in the former case. Therefore, 'funcregistrar' does: - invoke 'self.formatdoc', if it is callable (for the latter case) - use it as the format string, otherwise (for the former case)

File last commit:

r23109:cf56f7a6 stable
r27583:37d50250 default
Show More
filesets.txt
65 lines | 1.8 KiB | text/plain | TextLexer
Matt Mackall
fileset: add a help topic...
r14686 Mercurial supports a functional language for selecting a set of
Mads Kiilerich
check-code: check txt files for trailing whitespace
r18960 files.
Matt Mackall
fileset: add a help topic...
r14686
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::
FUJIWARA Katsunori
help: use "hg files" instead of "hg locate" in "hg help filesets"...
r23109 hg files "set:grep(magic) and not binary()"
Matt Mackall
fileset: add a help topic...
r14686
- Find C files in a non-standard encoding::
FUJIWARA Katsunori
help: use "hg files" instead of "hg locate" in "hg help filesets"...
r23109 hg files "set:**.c and not encoding('UTF-8')"
Matt Mackall
fileset: add a help topic...
r14686
- Revert copies of large binary files::
hg revert "set:copied() and binary() and size('>1M')"
Arne Babenhauserheide
help: fileset foo.lst was named files.lst
r14829 - Remove files listed in foo.lst that contain the letter a or b::
Matt Mackall
fileset: add a help topic...
r14686
hg remove "set: 'listfile:foo.lst' and (**a* or **b*)"
See also :hg:`help patterns`.