mercurial/help/revsets.txt
author Martin Geisler <mg@lazybytes.net>
Wed, 16 Mar 2011 13:51:47 +0100
changeset 13656 0e200e1801f4
parent 12821 165079e564f0
child 13937 5f126c01ebfa
permissions -rw-r--r--
relink: format reclaimed byte count nicely
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11382
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     1
Mercurial supports a functional language for selecting a set of
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     2
revisions.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     3
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     4
The language supports a number of predicates which are joined by infix
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     5
operators. Parenthesis can be used for grouping.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     6
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     7
Identifiers such as branch names must be quoted with single or double
11420
a99ef3711890 revset: improve help on strings
Matt Mackall <mpm@selenic.com>
parents: 11382
diff changeset
     8
quotes if they contain characters outside of
a99ef3711890 revset: improve help on strings
Matt Mackall <mpm@selenic.com>
parents: 11382
diff changeset
     9
``[._a-zA-Z0-9\x80-\xff]`` or if they match one of the predefined
12408
78a97859b90d revset: support raw string literals
Brodie Rao <brodie@bitheap.org>
parents: 11944
diff changeset
    10
predicates.
78a97859b90d revset: support raw string literals
Brodie Rao <brodie@bitheap.org>
parents: 11944
diff changeset
    11
78a97859b90d revset: support raw string literals
Brodie Rao <brodie@bitheap.org>
parents: 11944
diff changeset
    12
Special characters can be used in quoted identifiers by escaping them,
78a97859b90d revset: support raw string literals
Brodie Rao <brodie@bitheap.org>
parents: 11944
diff changeset
    13
e.g., ``\n`` is interpreted as a newline. To prevent them from being
78a97859b90d revset: support raw string literals
Brodie Rao <brodie@bitheap.org>
parents: 11944
diff changeset
    14
interpreted, strings can be prefixed with ``r``, e.g. ``r'...'``.
11382
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    15
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    16
There is a single prefix operator:
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    17
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    18
``not x``
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    19
  Changesets not in x. Short form is ``! x``.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    20
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    21
These are the supported infix operators:
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    22
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    23
``x::y``
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    24
  A DAG range, meaning all changesets that are descendants of x and
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    25
  ancestors of y, including x and y themselves. If the first endpoint
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    26
  is left out, this is equivalent to ``ancestors(y)``, if the second
11450
6bca9801c92a revset: fix spelling typo
Julian Cowley <julian@lava.net>
parents: 11420
diff changeset
    27
  is left out it is equivalent to ``descendants(x)``.
11382
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    28
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    29
  An alternative syntax is ``x..y``.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    30
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    31
``x:y``
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    32
  All changesets with revision numbers between x and y, both
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    33
  inclusive. Either endpoint can be left out, they default to 0 and
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    34
  tip.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    35
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    36
``x and y``
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    37
  The intersection of changesets in x and y. Short form is ``x & y``.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    38
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    39
``x or y``
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    40
  The union of changesets in x and y. There are two alternative short
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    41
  forms: ``x | y`` and ``x + y``.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    42
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    43
``x - y``
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    44
  Changesets in x but not in y.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    45
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    46
The following predicates are supported:
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    47
12821
165079e564f0 revsets: generate predicate help dynamically
Patrick Mezard <pmezard@gmail.com>
parents: 12808
diff changeset
    48
.. predicatesmarker
11382
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    49
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    50
Command line equivalents for :hg:`log`::
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    51
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    52
  -f    ->  ::.
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    53
  -d x  ->  date(x)
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    54
  -k x  ->  keyword(x)
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    55
  -m    ->  merge()
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    56
  -u x  ->  user(x)
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    57
  -b x  ->  branch(x)
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    58
  -P x  ->  !::x
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    59
  -l x  ->  limit(expr, x)
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    60
12659
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    61
Some sample queries:
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    62
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    63
- Changesets on the default branch::
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    64
12808
74f6531581e8 help: use Windows cmd compatible quoting in revset help
Mads Kiilerich <mads@kiilerich.com>
parents: 12716
diff changeset
    65
    hg log -r "branch(default)"
12659
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    66
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    67
- Changesets on the default branch since tag 1.5 (excluding merges)::
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    68
12808
74f6531581e8 help: use Windows cmd compatible quoting in revset help
Mads Kiilerich <mads@kiilerich.com>
parents: 12716
diff changeset
    69
    hg log -r "branch(default) and 1.5:: and not merge()"
11382
2f09b13e914d help: new revsets topic
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    70
12660
6ed5ae6264c2 revsets: add a sample query to the help for getting active branches
Brodie Rao <brodie@bitheap.org>
parents: 12659
diff changeset
    71
- Open branch heads::
6ed5ae6264c2 revsets: add a sample query to the help for getting active branches
Brodie Rao <brodie@bitheap.org>
parents: 12659
diff changeset
    72
12808
74f6531581e8 help: use Windows cmd compatible quoting in revset help
Mads Kiilerich <mads@kiilerich.com>
parents: 12716
diff changeset
    73
    hg log -r "head() and not closed()"
12660
6ed5ae6264c2 revsets: add a sample query to the help for getting active branches
Brodie Rao <brodie@bitheap.org>
parents: 12659
diff changeset
    74
12659
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    75
- Changesets between tags 1.3 and 1.5 mentioning "bug" that affect
12667
f5735bb80d77 revsets: fix stray * in help topic
Martin Geisler <mg@lazybytes.net>
parents: 12660
diff changeset
    76
  ``hgext/*``::
12659
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    77
12808
74f6531581e8 help: use Windows cmd compatible quoting in revset help
Mads Kiilerich <mads@kiilerich.com>
parents: 12716
diff changeset
    78
    hg log -r "1.3::1.5 and keyword(bug) and file('hgext/*')"
12659
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    79
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    80
- Changesets in committed May 2008, sorted by user::
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    81
12808
74f6531581e8 help: use Windows cmd compatible quoting in revset help
Mads Kiilerich <mads@kiilerich.com>
parents: 12716
diff changeset
    82
    hg log -r "sort(date('May 2008'), user)"
12659
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    83
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    84
- Changesets mentioning "bug" or "issue" that are not in a tagged
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    85
  release::
5aa5cbaf6efc revsets: add descriptions for sample queries in the help
Brodie Rao <brodie@bitheap.org>
parents: 12657
diff changeset
    86
12808
74f6531581e8 help: use Windows cmd compatible quoting in revset help
Mads Kiilerich <mads@kiilerich.com>
parents: 12716
diff changeset
    87
    hg log -r "(keyword(bug) or keyword(issue)) and not ancestors(tagged())"