Show More
@@ -28,7 +28,6 b'' | |||||
28 | <File Name="patterns.txt" /> |
|
28 | <File Name="patterns.txt" /> | |
29 | <File Name="phases.txt" /> |
|
29 | <File Name="phases.txt" /> | |
30 | <File Name="revisions.txt" /> |
|
30 | <File Name="revisions.txt" /> | |
31 | <File Name="revsets.txt" /> |
|
|||
32 | <File Name="scripting.txt" /> |
|
31 | <File Name="scripting.txt" /> | |
33 | <File Name="subrepos.txt" /> |
|
32 | <File Name="subrepos.txt" /> | |
34 | <File Name="templates.txt" /> |
|
33 | <File Name="templates.txt" /> |
@@ -210,10 +210,8 b' helptable = sorted([' | |||||
210 | (["patterns"], _("File Name Patterns"), loaddoc('patterns')), |
|
210 | (["patterns"], _("File Name Patterns"), loaddoc('patterns')), | |
211 | (['environment', 'env'], _('Environment Variables'), |
|
211 | (['environment', 'env'], _('Environment Variables'), | |
212 | loaddoc('environment')), |
|
212 | loaddoc('environment')), | |
213 | (['revisions', 'revs'], _('Specifying Single Revisions'), |
|
213 | (['revisions', 'revs', 'revsets', 'revset', 'multirevs', 'mrevs'], | |
214 | loaddoc('revisions')), |
|
214 | _('Specifying Revisions'), loaddoc('revisions')), | |
215 | (['revsets', 'revset', 'multirevs', 'mrevs'], |
|
|||
216 | _("Specifying Revision Sets"), loaddoc('revsets')), |
|
|||
217 | (['filesets', 'fileset'], _("Specifying File Sets"), loaddoc('filesets')), |
|
215 | (['filesets', 'fileset'], _("Specifying File Sets"), loaddoc('filesets')), | |
218 | (['diffs'], _('Diff Formats'), loaddoc('diffs')), |
|
216 | (['diffs'], _('Diff Formats'), loaddoc('diffs')), | |
219 | (['merge-tools', 'mergetools'], _('Merge Tools'), loaddoc('merge-tools')), |
|
217 | (['merge-tools', 'mergetools'], _('Merge Tools'), loaddoc('merge-tools')), | |
@@ -280,7 +278,7 b' def addtopicsymbols(topic, marker, symbo' | |||||
280 | addtopicsymbols('filesets', '.. predicatesmarker', fileset.symbols) |
|
278 | addtopicsymbols('filesets', '.. predicatesmarker', fileset.symbols) | |
281 | addtopicsymbols('merge-tools', '.. internaltoolsmarker', |
|
279 | addtopicsymbols('merge-tools', '.. internaltoolsmarker', | |
282 | filemerge.internalsdoc) |
|
280 | filemerge.internalsdoc) | |
283 |
addtopicsymbols('rev |
|
281 | addtopicsymbols('revisions', '.. predicatesmarker', revset.symbols) | |
284 | addtopicsymbols('templates', '.. keywordsmarker', templatekw.keywords) |
|
282 | addtopicsymbols('templates', '.. keywordsmarker', templatekw.keywords) | |
285 | addtopicsymbols('templates', '.. filtersmarker', templatefilters.filters) |
|
283 | addtopicsymbols('templates', '.. filtersmarker', templatefilters.filters) | |
286 | addtopicsymbols('templates', '.. functionsmarker', templater.funcs) |
|
284 | addtopicsymbols('templates', '.. functionsmarker', templater.funcs) |
@@ -1,4 +1,7 b'' | |||||
1 |
Mercurial supports several ways to specify |
|
1 | Mercurial supports several ways to specify revisions. | |
|
2 | ||||
|
3 | Specifying single revisions | |||
|
4 | =========================== | |||
2 |
|
5 | |||
3 | A plain integer is treated as a revision number. Negative integers are |
|
6 | A plain integer is treated as a revision number. Negative integers are | |
4 | treated as sequential offsets from the tip, with -1 denoting the tip, |
|
7 | treated as sequential offsets from the tip, with -1 denoting the tip, | |
@@ -25,3 +28,163 b' The reserved name "." indicates the work' | |||||
25 | working directory is checked out, it is equivalent to null. If an |
|
28 | working directory is checked out, it is equivalent to null. If an | |
26 | uncommitted merge is in progress, "." is the revision of the first |
|
29 | uncommitted merge is in progress, "." is the revision of the first | |
27 | parent. |
|
30 | parent. | |
|
31 | ||||
|
32 | Specifying multiple revisions | |||
|
33 | ============================= | |||
|
34 | ||||
|
35 | Mercurial supports a functional language for selecting a set of | |||
|
36 | revisions. | |||
|
37 | ||||
|
38 | The language supports a number of predicates which are joined by infix | |||
|
39 | operators. Parenthesis can be used for grouping. | |||
|
40 | ||||
|
41 | Identifiers such as branch names may need quoting with single or | |||
|
42 | double quotes if they contain characters like ``-`` or if they match | |||
|
43 | one of the predefined predicates. | |||
|
44 | ||||
|
45 | Special characters can be used in quoted identifiers by escaping them, | |||
|
46 | e.g., ``\n`` is interpreted as a newline. To prevent them from being | |||
|
47 | interpreted, strings can be prefixed with ``r``, e.g. ``r'...'``. | |||
|
48 | ||||
|
49 | Operators | |||
|
50 | ========= | |||
|
51 | ||||
|
52 | There is a single prefix operator: | |||
|
53 | ||||
|
54 | ``not x`` | |||
|
55 | Changesets not in x. Short form is ``! x``. | |||
|
56 | ||||
|
57 | These are the supported infix operators: | |||
|
58 | ||||
|
59 | ``x::y`` | |||
|
60 | A DAG range, meaning all changesets that are descendants of x and | |||
|
61 | ancestors of y, including x and y themselves. If the first endpoint | |||
|
62 | is left out, this is equivalent to ``ancestors(y)``, if the second | |||
|
63 | is left out it is equivalent to ``descendants(x)``. | |||
|
64 | ||||
|
65 | An alternative syntax is ``x..y``. | |||
|
66 | ||||
|
67 | ``x:y`` | |||
|
68 | All changesets with revision numbers between x and y, both | |||
|
69 | inclusive. Either endpoint can be left out, they default to 0 and | |||
|
70 | tip. | |||
|
71 | ||||
|
72 | ``x and y`` | |||
|
73 | The intersection of changesets in x and y. Short form is ``x & y``. | |||
|
74 | ||||
|
75 | ``x or y`` | |||
|
76 | The union of changesets in x and y. There are two alternative short | |||
|
77 | forms: ``x | y`` and ``x + y``. | |||
|
78 | ||||
|
79 | ``x - y`` | |||
|
80 | Changesets in x but not in y. | |||
|
81 | ||||
|
82 | ``x % y`` | |||
|
83 | Changesets that are ancestors of x but not ancestors of y (i.e. ::x - ::y). | |||
|
84 | This is shorthand notation for ``only(x, y)`` (see below). The second | |||
|
85 | argument is optional and, if left out, is equivalent to ``only(x)``. | |||
|
86 | ||||
|
87 | ``x^n`` | |||
|
88 | The nth parent of x, n == 0, 1, or 2. | |||
|
89 | For n == 0, x; for n == 1, the first parent of each changeset in x; | |||
|
90 | for n == 2, the second parent of changeset in x. | |||
|
91 | ||||
|
92 | ``x~n`` | |||
|
93 | The nth first ancestor of x; ``x~0`` is x; ``x~3`` is ``x^^^``. | |||
|
94 | ||||
|
95 | ``x ## y`` | |||
|
96 | Concatenate strings and identifiers into one string. | |||
|
97 | ||||
|
98 | All other prefix, infix and postfix operators have lower priority than | |||
|
99 | ``##``. For example, ``a1 ## a2~2`` is equivalent to ``(a1 ## a2)~2``. | |||
|
100 | ||||
|
101 | For example:: | |||
|
102 | ||||
|
103 | [revsetalias] | |||
|
104 | issue(a1) = grep(r'\bissue[ :]?' ## a1 ## r'\b|\bbug\(' ## a1 ## r'\)') | |||
|
105 | ||||
|
106 | ``issue(1234)`` is equivalent to | |||
|
107 | ``grep(r'\bissue[ :]?1234\b|\bbug\(1234\)')`` | |||
|
108 | in this case. This matches against all of "issue 1234", "issue:1234", | |||
|
109 | "issue1234" and "bug(1234)". | |||
|
110 | ||||
|
111 | There is a single postfix operator: | |||
|
112 | ||||
|
113 | ``x^`` | |||
|
114 | Equivalent to ``x^1``, the first parent of each changeset in x. | |||
|
115 | ||||
|
116 | Predicates | |||
|
117 | ========== | |||
|
118 | ||||
|
119 | The following predicates are supported: | |||
|
120 | ||||
|
121 | .. predicatesmarker | |||
|
122 | ||||
|
123 | Aliases | |||
|
124 | ======= | |||
|
125 | ||||
|
126 | New predicates (known as "aliases") can be defined, using any combination of | |||
|
127 | existing predicates or other aliases. An alias definition looks like:: | |||
|
128 | ||||
|
129 | <alias> = <definition> | |||
|
130 | ||||
|
131 | in the ``revsetalias`` section of a Mercurial configuration file. Arguments | |||
|
132 | of the form `a1`, `a2`, etc. are substituted from the alias into the | |||
|
133 | definition. | |||
|
134 | ||||
|
135 | For example, | |||
|
136 | ||||
|
137 | :: | |||
|
138 | ||||
|
139 | [revsetalias] | |||
|
140 | h = heads() | |||
|
141 | d(s) = sort(s, date) | |||
|
142 | rs(s, k) = reverse(sort(s, k)) | |||
|
143 | ||||
|
144 | defines three aliases, ``h``, ``d``, and ``rs``. ``rs(0:tip, author)`` is | |||
|
145 | exactly equivalent to ``reverse(sort(0:tip, author))``. | |||
|
146 | ||||
|
147 | Equivalents | |||
|
148 | =========== | |||
|
149 | ||||
|
150 | Command line equivalents for :hg:`log`:: | |||
|
151 | ||||
|
152 | -f -> ::. | |||
|
153 | -d x -> date(x) | |||
|
154 | -k x -> keyword(x) | |||
|
155 | -m -> merge() | |||
|
156 | -u x -> user(x) | |||
|
157 | -b x -> branch(x) | |||
|
158 | -P x -> !::x | |||
|
159 | -l x -> limit(expr, x) | |||
|
160 | ||||
|
161 | Examples | |||
|
162 | ======== | |||
|
163 | ||||
|
164 | Some sample queries: | |||
|
165 | ||||
|
166 | - Changesets on the default branch:: | |||
|
167 | ||||
|
168 | hg log -r "branch(default)" | |||
|
169 | ||||
|
170 | - Changesets on the default branch since tag 1.5 (excluding merges):: | |||
|
171 | ||||
|
172 | hg log -r "branch(default) and 1.5:: and not merge()" | |||
|
173 | ||||
|
174 | - Open branch heads:: | |||
|
175 | ||||
|
176 | hg log -r "head() and not closed()" | |||
|
177 | ||||
|
178 | - Changesets between tags 1.3 and 1.5 mentioning "bug" that affect | |||
|
179 | ``hgext/*``:: | |||
|
180 | ||||
|
181 | hg log -r "1.3::1.5 and keyword(bug) and file('hgext/*')" | |||
|
182 | ||||
|
183 | - Changesets committed in May 2008, sorted by user:: | |||
|
184 | ||||
|
185 | hg log -r "sort(date('May 2008'), user)" | |||
|
186 | ||||
|
187 | - Changesets mentioning "bug" or "issue" that are not in a tagged | |||
|
188 | release:: | |||
|
189 | ||||
|
190 | hg log -r "(keyword(bug) or keyword(issue)) and not ancestors(tag())" |
@@ -353,8 +353,7 b' Testing -h/--help:' | |||||
353 | merge-tools Merge Tools |
|
353 | merge-tools Merge Tools | |
354 | patterns File Name Patterns |
|
354 | patterns File Name Patterns | |
355 | phases Working with Phases |
|
355 | phases Working with Phases | |
356 |
revisions Specifying |
|
356 | revisions Specifying Revisions | |
357 | revsets Specifying Revision Sets |
|
|||
358 | scripting Using Mercurial from scripts and automation |
|
357 | scripting Using Mercurial from scripts and automation | |
359 | subrepos Subrepositories |
|
358 | subrepos Subrepositories | |
360 | templating Template Usage |
|
359 | templating Template Usage | |
@@ -435,8 +434,7 b' Testing -h/--help:' | |||||
435 | merge-tools Merge Tools |
|
434 | merge-tools Merge Tools | |
436 | patterns File Name Patterns |
|
435 | patterns File Name Patterns | |
437 | phases Working with Phases |
|
436 | phases Working with Phases | |
438 |
revisions Specifying |
|
437 | revisions Specifying Revisions | |
439 | revsets Specifying Revision Sets |
|
|||
440 | scripting Using Mercurial from scripts and automation |
|
438 | scripting Using Mercurial from scripts and automation | |
441 | subrepos Subrepositories |
|
439 | subrepos Subrepositories | |
442 | templating Template Usage |
|
440 | templating Template Usage |
@@ -115,8 +115,7 b' Short help:' | |||||
115 | merge-tools Merge Tools |
|
115 | merge-tools Merge Tools | |
116 | patterns File Name Patterns |
|
116 | patterns File Name Patterns | |
117 | phases Working with Phases |
|
117 | phases Working with Phases | |
118 |
revisions Specifying |
|
118 | revisions Specifying Revisions | |
119 | revsets Specifying Revision Sets |
|
|||
120 | scripting Using Mercurial from scripts and automation |
|
119 | scripting Using Mercurial from scripts and automation | |
121 | subrepos Subrepositories |
|
120 | subrepos Subrepositories | |
122 | templating Template Usage |
|
121 | templating Template Usage | |
@@ -191,8 +190,7 b' Short help:' | |||||
191 | merge-tools Merge Tools |
|
190 | merge-tools Merge Tools | |
192 | patterns File Name Patterns |
|
191 | patterns File Name Patterns | |
193 | phases Working with Phases |
|
192 | phases Working with Phases | |
194 |
revisions Specifying |
|
193 | revisions Specifying Revisions | |
195 | revsets Specifying Revision Sets |
|
|||
196 | scripting Using Mercurial from scripts and automation |
|
194 | scripting Using Mercurial from scripts and automation | |
197 | subrepos Subrepositories |
|
195 | subrepos Subrepositories | |
198 | templating Template Usage |
|
196 | templating Template Usage | |
@@ -831,8 +829,7 b' Test that default list of commands omits' | |||||
831 | merge-tools Merge Tools |
|
829 | merge-tools Merge Tools | |
832 | patterns File Name Patterns |
|
830 | patterns File Name Patterns | |
833 | phases Working with Phases |
|
831 | phases Working with Phases | |
834 |
revisions Specifying |
|
832 | revisions Specifying Revisions | |
835 | revsets Specifying Revision Sets |
|
|||
836 | scripting Using Mercurial from scripts and automation |
|
833 | scripting Using Mercurial from scripts and automation | |
837 | subrepos Subrepositories |
|
834 | subrepos Subrepositories | |
838 | templating Template Usage |
|
835 | templating Template Usage | |
@@ -1287,7 +1284,7 b' Test help hooks' | |||||
1287 | > return doc + '\nhelphook1\n' |
|
1284 | > return doc + '\nhelphook1\n' | |
1288 | > |
|
1285 | > | |
1289 | > def extsetup(ui): |
|
1286 | > def extsetup(ui): | |
1290 |
> help.addtopichook('rev |
|
1287 | > help.addtopichook('revisions', rewrite) | |
1291 | > EOF |
|
1288 | > EOF | |
1292 | $ cat > helphook2.py <<EOF |
|
1289 | $ cat > helphook2.py <<EOF | |
1293 | > from mercurial import help |
|
1290 | > from mercurial import help | |
@@ -1296,7 +1293,7 b' Test help hooks' | |||||
1296 | > return doc + '\nhelphook2\n' |
|
1293 | > return doc + '\nhelphook2\n' | |
1297 | > |
|
1294 | > | |
1298 | > def extsetup(ui): |
|
1295 | > def extsetup(ui): | |
1299 |
> help.addtopichook('rev |
|
1296 | > help.addtopichook('revisions', rewrite) | |
1300 | > EOF |
|
1297 | > EOF | |
1301 | $ echo '[extensions]' >> $HGRCPATH |
|
1298 | $ echo '[extensions]' >> $HGRCPATH | |
1302 | $ echo "helphook1 = `pwd`/helphook1.py" >> $HGRCPATH |
|
1299 | $ echo "helphook1 = `pwd`/helphook1.py" >> $HGRCPATH | |
@@ -1933,14 +1930,7 b' Dish up an empty repo; serve it cold.' | |||||
1933 | revisions |
|
1930 | revisions | |
1934 | </a> |
|
1931 | </a> | |
1935 | </td><td> |
|
1932 | </td><td> | |
1936 |
Specifying |
|
1933 | Specifying Revisions | |
1937 | </td></tr> |
|
|||
1938 | <tr><td> |
|
|||
1939 | <a href="/help/revsets"> |
|
|||
1940 | revsets |
|
|||
1941 | </a> |
|
|||
1942 | </td><td> |
|
|||
1943 | Specifying Revision Sets |
|
|||
1944 | </td></tr> |
|
1934 | </td></tr> | |
1945 | <tr><td> |
|
1935 | <tr><td> | |
1946 | <a href="/help/scripting"> |
|
1936 | <a href="/help/scripting"> |
@@ -1601,14 +1601,10 b' help/ shows help topics' | |||||
1601 | "topic": "phases" |
|
1601 | "topic": "phases" | |
1602 | }, |
|
1602 | }, | |
1603 | { |
|
1603 | { | |
1604 |
"summary": "Specifying |
|
1604 | "summary": "Specifying Revisions", | |
1605 | "topic": "revisions" |
|
1605 | "topic": "revisions" | |
1606 | }, |
|
1606 | }, | |
1607 | { |
|
1607 | { | |
1608 | "summary": "Specifying Revision Sets", |
|
|||
1609 | "topic": "revsets" |
|
|||
1610 | }, |
|
|||
1611 | { |
|
|||
1612 | "summary": "Using Mercurial from scripts and automation", |
|
1608 | "summary": "Using Mercurial from scripts and automation", | |
1613 | "topic": "scripting" |
|
1609 | "topic": "scripting" | |
1614 | }, |
|
1610 | }, |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now