Mercurial > hg
annotate mercurial/help/revsets.txt @ 11632:f418d2570920
log: document the different phases in walkchangerevs
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Tue, 20 Jul 2010 14:32:33 +0900 |
parents | 6bca9801c92a |
children | 39bac1821b12 |
rev | line source |
---|---|
11382 | 1 Mercurial supports a functional language for selecting a set of |
2 revisions. | |
3 | |
4 The language supports a number of predicates which are joined by infix | |
5 operators. Parenthesis can be used for grouping. | |
6 | |
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 |
a99ef3711890
revset: improve help on strings
Matt Mackall <mpm@selenic.com>
parents:
11382
diff
changeset
|
10 predicates. Special characters can be used in quoted identifiers by |
a99ef3711890
revset: improve help on strings
Matt Mackall <mpm@selenic.com>
parents:
11382
diff
changeset
|
11 escaping them, e.g., ``\n`` is interpreted as a newline. |
11382 | 12 |
13 There is a single prefix operator: | |
14 | |
15 ``not x`` | |
16 Changesets not in x. Short form is ``! x``. | |
17 | |
18 These are the supported infix operators: | |
19 | |
20 ``x::y`` | |
21 A DAG range, meaning all changesets that are descendants of x and | |
22 ancestors of y, including x and y themselves. If the first endpoint | |
23 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
|
24 is left out it is equivalent to ``descendants(x)``. |
11382 | 25 |
26 An alternative syntax is ``x..y``. | |
27 | |
28 ``x:y`` | |
29 All changesets with revision numbers between x and y, both | |
30 inclusive. Either endpoint can be left out, they default to 0 and | |
31 tip. | |
32 | |
33 ``x and y`` | |
34 The intersection of changesets in x and y. Short form is ``x & y``. | |
35 | |
36 ``x or y`` | |
37 The union of changesets in x and y. There are two alternative short | |
38 forms: ``x | y`` and ``x + y``. | |
39 | |
40 ``x - y`` | |
41 Changesets in x but not in y. | |
42 | |
43 The following predicates are supported: | |
44 | |
45 ``adds(pattern)`` | |
46 Changesets that add a file matching pattern. | |
47 | |
48 ``all()`` | |
49 All changesets, the same as ``0:tip``. | |
50 | |
51 ``ancestor(single, single)`` | |
52 Greatest common ancestor of the two changesets. | |
53 | |
54 ``ancestors(set)`` | |
55 Changesets that are ancestors of a changeset in set. | |
56 | |
57 ``author(string)`` | |
58 Alias for ``user(string)``. | |
59 | |
60 ``branch(set)`` | |
61 The branch names are found for changesets in set, and the result is | |
62 all changesets belonging to one those branches. | |
63 | |
64 ``children(set)`` | |
65 Child changesets of changesets in set. | |
66 | |
67 ``closed()`` | |
68 Changeset is closed. | |
69 | |
70 ``contains(pattern)`` | |
71 Revision contains pattern. | |
72 | |
73 ``date(interval)`` | |
74 Changesets within the interval, see :hg:`help dates`. | |
75 | |
76 ``descendants(set)`` | |
77 Changesets which are decendants of changesets in set. | |
78 | |
79 ``file(pattern)`` | |
80 Changesets which manually affected files matching pattern. | |
81 | |
82 ``follow()`` | |
83 An alias for ``::.`` (ancestors of the working copy's first parent). | |
84 | |
85 ``grep(regex)`` | |
86 Like ``keyword(string)`` but accepts a regex. | |
87 | |
88 ``head()`` | |
89 Changeset is a head. | |
90 | |
91 ``heads(set)`` | |
92 Members of set with no children in set. | |
93 | |
94 ``keyword(string)`` | |
95 Search commit message, user name, and names of changed files for | |
96 string. | |
97 | |
98 ``limit(set, n)`` | |
99 First n members of set. | |
100 | |
101 ``max(set)`` | |
102 Changeset with highest revision number in set. | |
103 | |
104 ``merge()`` | |
105 Changeset is a merge changeset. | |
106 | |
107 ``modifies(pattern)`` | |
108 Changesets which modify files matching pattern. | |
109 | |
110 ``outgoing([path])`` | |
111 Changesets missing in path. | |
112 | |
113 ``p1(set)`` | |
114 First parent of changesets in set. | |
115 | |
116 ``p2(set)`` | |
117 Second parent of changesets in set. | |
118 | |
119 ``parents(set)`` | |
120 The set of all parents for all changesets in set. | |
121 | |
122 ``removes(pattern)`` | |
123 Changesets which remove files matching pattern. | |
124 | |
125 ``reverse(set)`` | |
126 Reverse order of set. | |
127 | |
128 ``roots(set)`` | |
129 Changesets with no parent changeset in set. | |
130 | |
131 ``sort(set[, [-]key...])`` | |
132 Sort set by keys. The default sort order is ascending, specify a key | |
133 as ``-key`` to sort in descending order. | |
134 | |
135 The keys can be: | |
136 | |
137 - ``rev`` for the revision number, | |
138 - ``branch`` for the branch name, | |
139 - ``desc`` for the commit message (description), | |
140 - ``user`` for user name (``author`` can be used as an alias), | |
141 - ``date`` for the commit date | |
142 | |
143 ``tagged()`` | |
144 Changeset is tagged. | |
145 | |
146 ``user(string)`` | |
147 User name is string. | |
148 | |
149 Command line equivalents for :hg:`log`:: | |
150 | |
151 -f -> ::. | |
152 -d x -> date(x) | |
153 -k x -> keyword(x) | |
154 -m -> merge() | |
155 -u x -> user(x) | |
156 -b x -> branch(x) | |
157 -P x -> !::x | |
158 -l x -> limit(expr, x) | |
159 | |
160 Some sample queries:: | |
161 | |
162 hg log -r 'branch(default)' | |
163 hg log -r 'branch(default) and 1.5:: and not merge()' | |
164 hg log -r '1.3::1.5 and keyword(bug) and file("hgext/*")' | |
165 hg log -r 'sort(date("May 2008"), user)' | |
166 hg log -r '(keyword(bug) or keyword(issue)) and not ancestors(tagged())' |