##// END OF EJS Templates
revset: fix adds/modifies/removes and patterns (issue3403)...
revset: fix adds/modifies/removes and patterns (issue3403) The fast path was triggered if the argument was not like "type:value", with type a known pattern type. This is wrong for several reasons: - path:value is valid for the fast path - '*' is interpreted as a glob by default and is not valid for fast path Fast path detection is now done after the pattern is parsed, and the normalized path is extracted for direct comparison. All this seems a bit complicated, it is tempting to drop the fast path completely. Also, the hasfile() revset does something similar (only check .files()), without a fast path. If the fast path is really that efficient maybe it should be used there too. Note that: $ log 'modifies("set:modified()")' is different from: $ log 'modifies("*")' because of the usual merge ctx.files()/status(ctx.p1(), ctx) differences. Reported by Steffen Eichenberg <steffen.eichenberg@msg-gillardon.de>

File last commit:

r16510:c7c9473f stable
r16521:592701c8 stable
Show More
patterns.txt
57 lines | 2.0 KiB | text/plain | TextLexer
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 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.
FUJIWARA Katsunori
doc: add note about pattern rooted/unrooted cases to "hgignore" and "patterns"...
r16504 .. note::
Mads Kiilerich
docs: don't use :hg: at the beginning of lines in notes (issue3397)...
r16510 Patterns specified in ``.hgignore`` are not rooted.
Please see :hg:`help hgignore` for details.
FUJIWARA Katsunori
doc: add note about pattern rooted/unrooted cases to "hgignore" and "patterns"...
r16504
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 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.
Steve Borho
match: support reading pattern lists from files
r13218 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.
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 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
Steve Borho
match: support reading pattern lists from files
r13218
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
Matt Mackall
fileset: add a help topic...
r14686
See also :hg:`help filesets`.