##// END OF EJS Templates
revset: added lazyset implementation to checkstatus...
revset: added lazyset implementation to checkstatus This improves the performance of the revsets 'adds' 'modifies' and 'removes' Performance benchmarking: $ time hg log -qr "first(adds(README))" 0:9117c6561b0b real 0m2.279s user 0m2.222s sys 0m0.053s $ time ./hg log -qr "first(adds(README))" 0:9117c6561b0b real 0m0.172s user 0m0.131s sys 0m0.041s $ time hg log -qr "first(modifies(README))" 1:273ce12ad8f1 real 0m2.292s user 0m2.227s sys 0m0.061s $ time ./hg log -qr "first(modifies(README))" 1:273ce12ad8f1 real 0m0.178s user 0m0.130s sys 0m0.038s $ time hg log -qr "first(removes(README))" 2379:e90cff87f871 real 0m2.297s user 0m2.235s sys 0m0.058s $ time ./hg log -qr "first(removes(README))" 2379:e90cff87f871 real 0m0.975s user 0m0.797s sys 0m0.056s

File last commit:

r20329:45f23b1f stable
r20457:ed7b6748 default
Show More
patterns.txt
61 lines | 2.2 KiB | text/plain | TextLexer
Mercurial accepts several notations for identifying one or more files
at a time.
By default, Mercurial treats filenames as shell-style extended glob
patterns.
Alternate pattern notations must be specified explicitly.
.. note::
Patterns specified in ``.hgignore`` are not rooted.
Please see :hg:`help hgignore` for details.
To use a plain path name without any pattern matching, start it with
``path:``. These path names must completely match starting at the
current repository root.
To use an extended glob, start a name with ``glob:``. Globs are rooted
at the current directory; a glob such as ``*.c`` will only match files
in the current directory ending with ``.c``.
The supported glob syntax extensions are ``**`` to match any string
across path separators and ``{a,b}`` to mean "a or b".
To use a Perl/Python regular expression, start a name with ``re:``.
Regexp pattern matching is anchored at the root of the repository.
To read name patterns from a file, use ``listfile:`` or ``listfile0:``.
The latter expects null delimited patterns while the former expects line
feeds. Each string read from the file is itself treated as a file
pattern.
All patterns, except for ``glob:`` specified in command line (not for
``-I`` or ``-X`` options), can match also against directories: files
under matched directories are treated as matched.
Plain examples::
path:foo/bar a name bar in a directory named foo in the root
of the repository
path:path:name a file or directory named "path:name"
Glob examples::
glob:*.c any name ending in ".c" in the current directory
*.c any name ending in ".c" in the current directory
**.c any name ending in ".c" in any subdirectory of the
current directory including itself.
foo/*.c any name ending in ".c" in the directory foo
foo/**.c any name ending in ".c" in any subdirectory of foo
including itself.
Regexp examples::
re:.*\.c$ any name ending in ".c", anywhere in the repository
File examples::
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`.