##// END OF EJS Templates
py3: have test-revset2.t write test scripts in a more portable way...
Augie Fackler -
r41618:4caf56c3 default
parent child Browse files
Show More
@@ -1,746 +1,747 b''
1 test-abort-checkin.t
1 test-abort-checkin.t
2 test-absorb-edit-lines.t
2 test-absorb-edit-lines.t
3 test-absorb-filefixupstate.py
3 test-absorb-filefixupstate.py
4 test-absorb-phase.t
4 test-absorb-phase.t
5 test-absorb-rename.t
5 test-absorb-rename.t
6 test-absorb-strip.t
6 test-absorb-strip.t
7 test-absorb.t
7 test-absorb.t
8 test-add.t
8 test-add.t
9 test-addremove-similar.t
9 test-addremove-similar.t
10 test-addremove.t
10 test-addremove.t
11 test-alias.t
11 test-alias.t
12 test-amend-subrepo.t
12 test-amend-subrepo.t
13 test-amend.t
13 test-amend.t
14 test-ancestor.py
14 test-ancestor.py
15 test-annotate.py
15 test-annotate.py
16 test-annotate.t
16 test-annotate.t
17 test-arbitraryfilectx.t
17 test-arbitraryfilectx.t
18 test-archive-symlinks.t
18 test-archive-symlinks.t
19 test-archive.t
19 test-archive.t
20 test-atomictempfile.py
20 test-atomictempfile.py
21 test-audit-path.t
21 test-audit-path.t
22 test-audit-subrepo.t
22 test-audit-subrepo.t
23 test-automv.t
23 test-automv.t
24 test-backout.t
24 test-backout.t
25 test-backwards-remove.t
25 test-backwards-remove.t
26 test-bad-extension.t
26 test-bad-extension.t
27 test-bad-pull.t
27 test-bad-pull.t
28 test-basic.t
28 test-basic.t
29 test-batching.py
29 test-batching.py
30 test-bdiff.py
30 test-bdiff.py
31 test-bheads.t
31 test-bheads.t
32 test-bisect.t
32 test-bisect.t
33 test-bisect2.t
33 test-bisect2.t
34 test-bisect3.t
34 test-bisect3.t
35 test-blackbox.t
35 test-blackbox.t
36 test-bookflow.t
36 test-bookflow.t
37 test-bookmarks-current.t
37 test-bookmarks-current.t
38 test-bookmarks-merge.t
38 test-bookmarks-merge.t
39 test-bookmarks-pushpull.t
39 test-bookmarks-pushpull.t
40 test-bookmarks-rebase.t
40 test-bookmarks-rebase.t
41 test-bookmarks-strip.t
41 test-bookmarks-strip.t
42 test-bookmarks.t
42 test-bookmarks.t
43 test-branch-change.t
43 test-branch-change.t
44 test-branch-option.t
44 test-branch-option.t
45 test-branch-tag-confict.t
45 test-branch-tag-confict.t
46 test-branches.t
46 test-branches.t
47 test-bugzilla.t
47 test-bugzilla.t
48 test-bundle-phases.t
48 test-bundle-phases.t
49 test-bundle-r.t
49 test-bundle-r.t
50 test-bundle-type.t
50 test-bundle-type.t
51 test-bundle-vs-outgoing.t
51 test-bundle-vs-outgoing.t
52 test-bundle.t
52 test-bundle.t
53 test-bundle2-exchange.t
53 test-bundle2-exchange.t
54 test-bundle2-format.t
54 test-bundle2-format.t
55 test-bundle2-multiple-changegroups.t
55 test-bundle2-multiple-changegroups.t
56 test-bundle2-pushback.t
56 test-bundle2-pushback.t
57 test-bundle2-remote-changegroup.t
57 test-bundle2-remote-changegroup.t
58 test-cache-abuse.t
58 test-cache-abuse.t
59 test-cappedreader.py
59 test-cappedreader.py
60 test-casecollision-merge.t
60 test-casecollision-merge.t
61 test-casecollision.t
61 test-casecollision.t
62 test-casefolding.t
62 test-casefolding.t
63 test-cat.t
63 test-cat.t
64 test-cbor.py
64 test-cbor.py
65 test-censor.t
65 test-censor.t
66 test-changelog-exec.t
66 test-changelog-exec.t
67 test-check-code.t
67 test-check-code.t
68 test-check-commit.t
68 test-check-commit.t
69 test-check-config.py
69 test-check-config.py
70 test-check-config.t
70 test-check-config.t
71 test-check-execute.t
71 test-check-execute.t
72 test-check-help.t
72 test-check-help.t
73 test-check-interfaces.py
73 test-check-interfaces.py
74 test-check-module-imports.t
74 test-check-module-imports.t
75 test-check-py3-compat.t
75 test-check-py3-compat.t
76 test-check-pyflakes.t
76 test-check-pyflakes.t
77 test-check-pylint.t
77 test-check-pylint.t
78 test-check-shbang.t
78 test-check-shbang.t
79 test-children.t
79 test-children.t
80 test-churn.t
80 test-churn.t
81 test-clone-cgi.t
81 test-clone-cgi.t
82 test-clone-pull-corruption.t
82 test-clone-pull-corruption.t
83 test-clone-r.t
83 test-clone-r.t
84 test-clone-uncompressed.t
84 test-clone-uncompressed.t
85 test-clone-update-order.t
85 test-clone-update-order.t
86 test-clone.t
86 test-clone.t
87 test-clonebundles.t
87 test-clonebundles.t
88 test-close-head.t
88 test-close-head.t
89 test-commandserver.t
89 test-commandserver.t
90 test-commit-amend.t
90 test-commit-amend.t
91 test-commit-interactive.t
91 test-commit-interactive.t
92 test-commit-multiple.t
92 test-commit-multiple.t
93 test-commit-unresolved.t
93 test-commit-unresolved.t
94 test-commit.t
94 test-commit.t
95 test-committer.t
95 test-committer.t
96 test-completion.t
96 test-completion.t
97 test-config-env.py
97 test-config-env.py
98 test-config.t
98 test-config.t
99 test-conflict.t
99 test-conflict.t
100 test-confused-revert.t
100 test-confused-revert.t
101 test-context-metadata.t
101 test-context-metadata.t
102 test-context.py
102 test-context.py
103 test-contrib-check-code.t
103 test-contrib-check-code.t
104 test-contrib-check-commit.t
104 test-contrib-check-commit.t
105 test-contrib-dumprevlog.t
105 test-contrib-dumprevlog.t
106 test-contrib-perf.t
106 test-contrib-perf.t
107 test-contrib-relnotes.t
107 test-contrib-relnotes.t
108 test-contrib-testparseutil.t
108 test-contrib-testparseutil.t
109 test-contrib.t
109 test-contrib.t
110 test-convert-authormap.t
110 test-convert-authormap.t
111 test-convert-clonebranches.t
111 test-convert-clonebranches.t
112 test-convert-cvs-branch.t
112 test-convert-cvs-branch.t
113 test-convert-cvs-detectmerge.t
113 test-convert-cvs-detectmerge.t
114 test-convert-cvs-synthetic.t
114 test-convert-cvs-synthetic.t
115 test-convert-cvs.t
115 test-convert-cvs.t
116 test-convert-cvsnt-mergepoints.t
116 test-convert-cvsnt-mergepoints.t
117 test-convert-datesort.t
117 test-convert-datesort.t
118 test-convert-filemap.t
118 test-convert-filemap.t
119 test-convert-hg-sink.t
119 test-convert-hg-sink.t
120 test-convert-hg-source.t
120 test-convert-hg-source.t
121 test-convert-hg-startrev.t
121 test-convert-hg-startrev.t
122 test-convert-splicemap.t
122 test-convert-splicemap.t
123 test-convert-svn-sink.t
123 test-convert-svn-sink.t
124 test-convert-tagsbranch-topology.t
124 test-convert-tagsbranch-topology.t
125 test-convert.t
125 test-convert.t
126 test-copy-move-merge.t
126 test-copy-move-merge.t
127 test-copy.t
127 test-copy.t
128 test-copytrace-heuristics.t
128 test-copytrace-heuristics.t
129 test-custom-filters.t
129 test-custom-filters.t
130 test-debugbuilddag.t
130 test-debugbuilddag.t
131 test-debugbundle.t
131 test-debugbundle.t
132 test-debugcommands.t
132 test-debugcommands.t
133 test-debugextensions.t
133 test-debugextensions.t
134 test-debugindexdot.t
134 test-debugindexdot.t
135 test-debugrename.t
135 test-debugrename.t
136 test-default-push.t
136 test-default-push.t
137 test-diff-antipatience.t
137 test-diff-antipatience.t
138 test-diff-binary-file.t
138 test-diff-binary-file.t
139 test-diff-change.t
139 test-diff-change.t
140 test-diff-color.t
140 test-diff-color.t
141 test-diff-copy-depth.t
141 test-diff-copy-depth.t
142 test-diff-hashes.t
142 test-diff-hashes.t
143 test-diff-ignore-whitespace.t
143 test-diff-ignore-whitespace.t
144 test-diff-indent-heuristic.t
144 test-diff-indent-heuristic.t
145 test-diff-issue2761.t
145 test-diff-issue2761.t
146 test-diff-newlines.t
146 test-diff-newlines.t
147 test-diff-reverse.t
147 test-diff-reverse.t
148 test-diff-subdir.t
148 test-diff-subdir.t
149 test-diff-unified.t
149 test-diff-unified.t
150 test-diff-upgrade.t
150 test-diff-upgrade.t
151 test-diffdir.t
151 test-diffdir.t
152 test-diffstat.t
152 test-diffstat.t
153 test-directaccess.t
153 test-directaccess.t
154 test-dirstate-backup.t
154 test-dirstate-backup.t
155 test-dirstate-nonnormalset.t
155 test-dirstate-nonnormalset.t
156 test-dirstate-race.t
156 test-dirstate-race.t
157 test-dirstate.t
157 test-dirstate.t
158 test-dispatch.py
158 test-dispatch.py
159 test-dispatch.t
159 test-dispatch.t
160 test-doctest.py
160 test-doctest.py
161 test-double-merge.t
161 test-double-merge.t
162 test-drawdag.t
162 test-drawdag.t
163 test-duplicateoptions.py
163 test-duplicateoptions.py
164 test-editor-filename.t
164 test-editor-filename.t
165 test-empty-dir.t
165 test-empty-dir.t
166 test-empty-file.t
166 test-empty-file.t
167 test-empty-group.t
167 test-empty-group.t
168 test-empty.t
168 test-empty.t
169 test-encode.t
169 test-encode.t
170 test-encoding-align.t
170 test-encoding-align.t
171 test-encoding-func.py
171 test-encoding-func.py
172 test-encoding-textwrap.t
172 test-encoding-textwrap.t
173 test-encoding.t
173 test-encoding.t
174 test-eol-add.t
174 test-eol-add.t
175 test-eol-clone.t
175 test-eol-clone.t
176 test-eol-hook.t
176 test-eol-hook.t
177 test-eol-patch.t
177 test-eol-patch.t
178 test-eol-tag.t
178 test-eol-tag.t
179 test-eol-update.t
179 test-eol-update.t
180 test-eol.t
180 test-eol.t
181 test-eolfilename.t
181 test-eolfilename.t
182 test-excessive-merge.t
182 test-excessive-merge.t
183 test-exchange-obsmarkers-case-A1.t
183 test-exchange-obsmarkers-case-A1.t
184 test-exchange-obsmarkers-case-A2.t
184 test-exchange-obsmarkers-case-A2.t
185 test-exchange-obsmarkers-case-A3.t
185 test-exchange-obsmarkers-case-A3.t
186 test-exchange-obsmarkers-case-A4.t
186 test-exchange-obsmarkers-case-A4.t
187 test-exchange-obsmarkers-case-A5.t
187 test-exchange-obsmarkers-case-A5.t
188 test-exchange-obsmarkers-case-A6.t
188 test-exchange-obsmarkers-case-A6.t
189 test-exchange-obsmarkers-case-A7.t
189 test-exchange-obsmarkers-case-A7.t
190 test-exchange-obsmarkers-case-B1.t
190 test-exchange-obsmarkers-case-B1.t
191 test-exchange-obsmarkers-case-B2.t
191 test-exchange-obsmarkers-case-B2.t
192 test-exchange-obsmarkers-case-B3.t
192 test-exchange-obsmarkers-case-B3.t
193 test-exchange-obsmarkers-case-B4.t
193 test-exchange-obsmarkers-case-B4.t
194 test-exchange-obsmarkers-case-B5.t
194 test-exchange-obsmarkers-case-B5.t
195 test-exchange-obsmarkers-case-B6.t
195 test-exchange-obsmarkers-case-B6.t
196 test-exchange-obsmarkers-case-B7.t
196 test-exchange-obsmarkers-case-B7.t
197 test-exchange-obsmarkers-case-C1.t
197 test-exchange-obsmarkers-case-C1.t
198 test-exchange-obsmarkers-case-C2.t
198 test-exchange-obsmarkers-case-C2.t
199 test-exchange-obsmarkers-case-C3.t
199 test-exchange-obsmarkers-case-C3.t
200 test-exchange-obsmarkers-case-C4.t
200 test-exchange-obsmarkers-case-C4.t
201 test-exchange-obsmarkers-case-D1.t
201 test-exchange-obsmarkers-case-D1.t
202 test-exchange-obsmarkers-case-D2.t
202 test-exchange-obsmarkers-case-D2.t
203 test-exchange-obsmarkers-case-D3.t
203 test-exchange-obsmarkers-case-D3.t
204 test-exchange-obsmarkers-case-D4.t
204 test-exchange-obsmarkers-case-D4.t
205 test-execute-bit.t
205 test-execute-bit.t
206 test-export.t
206 test-export.t
207 test-extdata.t
207 test-extdata.t
208 test-extdiff.t
208 test-extdiff.t
209 test-extension-timing.t
209 test-extension-timing.t
210 test-extensions-afterloaded.t
210 test-extensions-afterloaded.t
211 test-extensions-wrapfunction.py
211 test-extensions-wrapfunction.py
212 test-extra-filelog-entry.t
212 test-extra-filelog-entry.t
213 test-fastannotate-corrupt.t
213 test-fastannotate-corrupt.t
214 test-fastannotate-diffopts.t
214 test-fastannotate-diffopts.t
215 test-fastannotate-hg.t
215 test-fastannotate-hg.t
216 test-fastannotate-perfhack.t
216 test-fastannotate-perfhack.t
217 test-fastannotate-protocol.t
217 test-fastannotate-protocol.t
218 test-fastannotate-renames.t
218 test-fastannotate-renames.t
219 test-fastannotate-revmap.py
219 test-fastannotate-revmap.py
220 test-fastannotate.t
220 test-fastannotate.t
221 test-fetch.t
221 test-fetch.t
222 test-filebranch.t
222 test-filebranch.t
223 test-filecache.py
223 test-filecache.py
224 test-filelog.py
224 test-filelog.py
225 test-fileset-generated.t
225 test-fileset-generated.t
226 test-fileset.t
226 test-fileset.t
227 test-fix-topology.t
227 test-fix-topology.t
228 test-fix.t
228 test-fix.t
229 test-flags.t
229 test-flags.t
230 test-fncache.t
230 test-fncache.t
231 test-gendoc-da.t
231 test-gendoc-da.t
232 test-gendoc-de.t
232 test-gendoc-de.t
233 test-gendoc-el.t
233 test-gendoc-el.t
234 test-gendoc-fr.t
234 test-gendoc-fr.t
235 test-gendoc-it.t
235 test-gendoc-it.t
236 test-gendoc-ja.t
236 test-gendoc-ja.t
237 test-gendoc-pt_BR.t
237 test-gendoc-pt_BR.t
238 test-gendoc-ro.t
238 test-gendoc-ro.t
239 test-gendoc-ru.t
239 test-gendoc-ru.t
240 test-gendoc-sv.t
240 test-gendoc-sv.t
241 test-gendoc-zh_CN.t
241 test-gendoc-zh_CN.t
242 test-gendoc-zh_TW.t
242 test-gendoc-zh_TW.t
243 test-gendoc.t
243 test-gendoc.t
244 test-generaldelta.t
244 test-generaldelta.t
245 test-getbundle.t
245 test-getbundle.t
246 test-git-export.t
246 test-git-export.t
247 test-githelp.t
247 test-githelp.t
248 test-globalopts.t
248 test-globalopts.t
249 test-glog-beautifygraph.t
249 test-glog-beautifygraph.t
250 test-glog-topological.t
250 test-glog-topological.t
251 test-glog.t
251 test-glog.t
252 test-gpg.t
252 test-gpg.t
253 test-graft.t
253 test-graft.t
254 test-grep.t
254 test-grep.t
255 test-hardlinks.t
255 test-hardlinks.t
256 test-help-hide.t
256 test-help-hide.t
257 test-help.t
257 test-help.t
258 test-hg-parseurl.py
258 test-hg-parseurl.py
259 test-hghave.t
259 test-hghave.t
260 test-hgignore.t
260 test-hgignore.t
261 test-hgk.t
261 test-hgk.t
262 test-hgrc.t
262 test-hgrc.t
263 test-hgweb-annotate-whitespace.t
263 test-hgweb-annotate-whitespace.t
264 test-hgweb-auth.py
264 test-hgweb-auth.py
265 test-hgweb-bundle.t
265 test-hgweb-bundle.t
266 test-hgweb-commands.t
266 test-hgweb-commands.t
267 test-hgweb-csp.t
267 test-hgweb-csp.t
268 test-hgweb-descend-empties.t
268 test-hgweb-descend-empties.t
269 test-hgweb-diffs.t
269 test-hgweb-diffs.t
270 test-hgweb-empty.t
270 test-hgweb-empty.t
271 test-hgweb-filelog.t
271 test-hgweb-filelog.t
272 test-hgweb-no-path-info.t
272 test-hgweb-no-path-info.t
273 test-hgweb-no-request-uri.t
273 test-hgweb-no-request-uri.t
274 test-hgweb-non-interactive.t
274 test-hgweb-non-interactive.t
275 test-hgweb-raw.t
275 test-hgweb-raw.t
276 test-hgweb-removed.t
276 test-hgweb-removed.t
277 test-hgweb-symrev.t
277 test-hgweb-symrev.t
278 test-hgweb.t
278 test-hgweb.t
279 test-hgwebdir-paths.py
279 test-hgwebdir-paths.py
280 test-hgwebdir.t
280 test-hgwebdir.t
281 test-hgwebdirsym.t
281 test-hgwebdirsym.t
282 test-histedit-arguments.t
282 test-histedit-arguments.t
283 test-histedit-base.t
283 test-histedit-base.t
284 test-histedit-bookmark-motion.t
284 test-histedit-bookmark-motion.t
285 test-histedit-commute.t
285 test-histedit-commute.t
286 test-histedit-drop.t
286 test-histedit-drop.t
287 test-histedit-edit.t
287 test-histedit-edit.t
288 test-histedit-fold-non-commute.t
288 test-histedit-fold-non-commute.t
289 test-histedit-fold.t
289 test-histedit-fold.t
290 test-histedit-no-backup.t
290 test-histedit-no-backup.t
291 test-histedit-no-change.t
291 test-histedit-no-change.t
292 test-histedit-non-commute-abort.t
292 test-histedit-non-commute-abort.t
293 test-histedit-non-commute.t
293 test-histedit-non-commute.t
294 test-histedit-obsolete.t
294 test-histedit-obsolete.t
295 test-histedit-outgoing.t
295 test-histedit-outgoing.t
296 test-histedit-templates.t
296 test-histedit-templates.t
297 test-http-api-httpv2.t
297 test-http-api-httpv2.t
298 test-http-api.t
298 test-http-api.t
299 test-http-bad-server.t
299 test-http-bad-server.t
300 test-http-branchmap.t
300 test-http-branchmap.t
301 test-http-bundle1.t
301 test-http-bundle1.t
302 test-http-clone-r.t
302 test-http-clone-r.t
303 test-http-permissions.t
303 test-http-permissions.t
304 test-http-protocol.t
304 test-http-protocol.t
305 test-http.t
305 test-http.t
306 test-hybridencode.py
306 test-hybridencode.py
307 test-i18n.t
307 test-i18n.t
308 test-identify.t
308 test-identify.t
309 test-impexp-branch.t
309 test-impexp-branch.t
310 test-import-bypass.t
310 test-import-bypass.t
311 test-import-context.t
311 test-import-context.t
312 test-import-eol.t
312 test-import-eol.t
313 test-import-merge.t
313 test-import-merge.t
314 test-import-unknown.t
314 test-import-unknown.t
315 test-import.t
315 test-import.t
316 test-imports-checker.t
316 test-imports-checker.t
317 test-incoming-outgoing.t
317 test-incoming-outgoing.t
318 test-infinitepush-bundlestore.t
318 test-infinitepush-bundlestore.t
319 test-infinitepush-ci.t
319 test-infinitepush-ci.t
320 test-infinitepush.t
320 test-infinitepush.t
321 test-inherit-mode.t
321 test-inherit-mode.t
322 test-init.t
322 test-init.t
323 test-install.t
323 test-install.t
324 test-issue1089.t
324 test-issue1089.t
325 test-issue1102.t
325 test-issue1102.t
326 test-issue1175.t
326 test-issue1175.t
327 test-issue1306.t
327 test-issue1306.t
328 test-issue1438.t
328 test-issue1438.t
329 test-issue1502.t
329 test-issue1502.t
330 test-issue1802.t
330 test-issue1802.t
331 test-issue1877.t
331 test-issue1877.t
332 test-issue1993.t
332 test-issue1993.t
333 test-issue2137.t
333 test-issue2137.t
334 test-issue3084.t
334 test-issue3084.t
335 test-issue4074.t
335 test-issue4074.t
336 test-issue522.t
336 test-issue522.t
337 test-issue586.t
337 test-issue586.t
338 test-issue5979.t
338 test-issue5979.t
339 test-issue612.t
339 test-issue612.t
340 test-issue619.t
340 test-issue619.t
341 test-issue660.t
341 test-issue660.t
342 test-issue672.t
342 test-issue672.t
343 test-issue842.t
343 test-issue842.t
344 test-journal-exists.t
344 test-journal-exists.t
345 test-journal-share.t
345 test-journal-share.t
346 test-journal.t
346 test-journal.t
347 test-keyword.t
347 test-keyword.t
348 test-known.t
348 test-known.t
349 test-largefiles-cache.t
349 test-largefiles-cache.t
350 test-largefiles-misc.t
350 test-largefiles-misc.t
351 test-largefiles-small-disk.t
351 test-largefiles-small-disk.t
352 test-largefiles-update.t
352 test-largefiles-update.t
353 test-largefiles-wireproto.t
353 test-largefiles-wireproto.t
354 test-largefiles.t
354 test-largefiles.t
355 test-lfconvert.t
355 test-lfconvert.t
356 test-lfs-bundle.t
356 test-lfs-bundle.t
357 test-lfs-largefiles.t
357 test-lfs-largefiles.t
358 test-lfs-pointer.py
358 test-lfs-pointer.py
359 test-lfs-test-server.t
359 test-lfs-test-server.t
360 test-lfs.t
360 test-lfs.t
361 test-linelog.py
361 test-linelog.py
362 test-linerange.py
362 test-linerange.py
363 test-locate.t
363 test-locate.t
364 test-lock-badness.t
364 test-lock-badness.t
365 test-log-exthook.t
365 test-log-exthook.t
366 test-log-linerange.t
366 test-log-linerange.t
367 test-log.t
367 test-log.t
368 test-logexchange.t
368 test-logexchange.t
369 test-logtoprocess.t
369 test-logtoprocess.t
370 test-lrucachedict.py
370 test-lrucachedict.py
371 test-mactext.t
371 test-mactext.t
372 test-mailmap.t
372 test-mailmap.t
373 test-manifest-merging.t
373 test-manifest-merging.t
374 test-manifest.py
374 test-manifest.py
375 test-manifest.t
375 test-manifest.t
376 test-match.py
376 test-match.py
377 test-mdiff.py
377 test-mdiff.py
378 test-merge-changedelete.t
378 test-merge-changedelete.t
379 test-merge-closedheads.t
379 test-merge-closedheads.t
380 test-merge-commit.t
380 test-merge-commit.t
381 test-merge-criss-cross.t
381 test-merge-criss-cross.t
382 test-merge-default.t
382 test-merge-default.t
383 test-merge-force.t
383 test-merge-force.t
384 test-merge-halt.t
384 test-merge-halt.t
385 test-merge-internal-tools-pattern.t
385 test-merge-internal-tools-pattern.t
386 test-merge-local.t
386 test-merge-local.t
387 test-merge-no-file-change.t
387 test-merge-no-file-change.t
388 test-merge-remove.t
388 test-merge-remove.t
389 test-merge-revert.t
389 test-merge-revert.t
390 test-merge-revert2.t
390 test-merge-revert2.t
391 test-merge-subrepos.t
391 test-merge-subrepos.t
392 test-merge-symlinks.t
392 test-merge-symlinks.t
393 test-merge-tools.t
393 test-merge-tools.t
394 test-merge-types.t
394 test-merge-types.t
395 test-merge1.t
395 test-merge1.t
396 test-merge10.t
396 test-merge10.t
397 test-merge2.t
397 test-merge2.t
398 test-merge4.t
398 test-merge4.t
399 test-merge5.t
399 test-merge5.t
400 test-merge6.t
400 test-merge6.t
401 test-merge7.t
401 test-merge7.t
402 test-merge8.t
402 test-merge8.t
403 test-merge9.t
403 test-merge9.t
404 test-minifileset.py
404 test-minifileset.py
405 test-minirst.py
405 test-minirst.py
406 test-missing-capability.t
406 test-missing-capability.t
407 test-mq-eol.t
407 test-mq-eol.t
408 test-mq-git.t
408 test-mq-git.t
409 test-mq-guards.t
409 test-mq-guards.t
410 test-mq-header-date.t
410 test-mq-header-date.t
411 test-mq-header-from.t
411 test-mq-header-from.t
412 test-mq-merge.t
412 test-mq-merge.t
413 test-mq-missingfiles.t
413 test-mq-missingfiles.t
414 test-mq-pull-from-bundle.t
414 test-mq-pull-from-bundle.t
415 test-mq-qclone-http.t
415 test-mq-qclone-http.t
416 test-mq-qdelete.t
416 test-mq-qdelete.t
417 test-mq-qdiff.t
417 test-mq-qdiff.t
418 test-mq-qfold.t
418 test-mq-qfold.t
419 test-mq-qgoto.t
419 test-mq-qgoto.t
420 test-mq-qimport-fail-cleanup.t
420 test-mq-qimport-fail-cleanup.t
421 test-mq-qimport.t
421 test-mq-qimport.t
422 test-mq-qnew.t
422 test-mq-qnew.t
423 test-mq-qpush-exact.t
423 test-mq-qpush-exact.t
424 test-mq-qpush-fail.t
424 test-mq-qpush-fail.t
425 test-mq-qqueue.t
425 test-mq-qqueue.t
426 test-mq-qrefresh-interactive.t
426 test-mq-qrefresh-interactive.t
427 test-mq-qrefresh-replace-log-message.t
427 test-mq-qrefresh-replace-log-message.t
428 test-mq-qrefresh.t
428 test-mq-qrefresh.t
429 test-mq-qrename.t
429 test-mq-qrename.t
430 test-mq-qsave.t
430 test-mq-qsave.t
431 test-mq-safety.t
431 test-mq-safety.t
432 test-mq-subrepo.t
432 test-mq-subrepo.t
433 test-mq-symlinks.t
433 test-mq-symlinks.t
434 test-mq.t
434 test-mq.t
435 test-mv-cp-st-diff.t
435 test-mv-cp-st-diff.t
436 test-narrow-acl.t
436 test-narrow-acl.t
437 test-narrow-archive.t
437 test-narrow-archive.t
438 test-narrow-clone-no-ellipsis.t
438 test-narrow-clone-no-ellipsis.t
439 test-narrow-clone-non-narrow-server.t
439 test-narrow-clone-non-narrow-server.t
440 test-narrow-clone-nonlinear.t
440 test-narrow-clone-nonlinear.t
441 test-narrow-clone-stream.t
441 test-narrow-clone-stream.t
442 test-narrow-clone.t
442 test-narrow-clone.t
443 test-narrow-commit.t
443 test-narrow-commit.t
444 test-narrow-copies.t
444 test-narrow-copies.t
445 test-narrow-debugcommands.t
445 test-narrow-debugcommands.t
446 test-narrow-debugrebuilddirstate.t
446 test-narrow-debugrebuilddirstate.t
447 test-narrow-exchange-merges.t
447 test-narrow-exchange-merges.t
448 test-narrow-exchange.t
448 test-narrow-exchange.t
449 test-narrow-expanddirstate.t
449 test-narrow-expanddirstate.t
450 test-narrow-merge.t
450 test-narrow-merge.t
451 test-narrow-patch.t
451 test-narrow-patch.t
452 test-narrow-patterns.t
452 test-narrow-patterns.t
453 test-narrow-pull.t
453 test-narrow-pull.t
454 test-narrow-rebase.t
454 test-narrow-rebase.t
455 test-narrow-shallow-merges.t
455 test-narrow-shallow-merges.t
456 test-narrow-shallow.t
456 test-narrow-shallow.t
457 test-narrow-share.t
457 test-narrow-share.t
458 test-narrow-sparse.t
458 test-narrow-sparse.t
459 test-narrow-strip.t
459 test-narrow-strip.t
460 test-narrow-trackedcmd.t
460 test-narrow-trackedcmd.t
461 test-narrow-update.t
461 test-narrow-update.t
462 test-narrow-widen-no-ellipsis.t
462 test-narrow-widen-no-ellipsis.t
463 test-narrow-widen.t
463 test-narrow-widen.t
464 test-narrow.t
464 test-narrow.t
465 test-nested-repo.t
465 test-nested-repo.t
466 test-newbranch.t
466 test-newbranch.t
467 test-newcgi.t
467 test-newcgi.t
468 test-newercgi.t
468 test-newercgi.t
469 test-nointerrupt.t
469 test-nointerrupt.t
470 test-notify-changegroup.t
470 test-notify-changegroup.t
471 test-obshistory.t
471 test-obshistory.t
472 test-obsmarker-template.t
472 test-obsmarker-template.t
473 test-obsmarkers-effectflag.t
473 test-obsmarkers-effectflag.t
474 test-obsolete-bounds-checking.t
474 test-obsolete-bounds-checking.t
475 test-obsolete-bundle-strip.t
475 test-obsolete-bundle-strip.t
476 test-obsolete-changeset-exchange.t
476 test-obsolete-changeset-exchange.t
477 test-obsolete-checkheads.t
477 test-obsolete-checkheads.t
478 test-obsolete-distributed.t
478 test-obsolete-distributed.t
479 test-obsolete-divergent.t
479 test-obsolete-divergent.t
480 test-obsolete-tag-cache.t
480 test-obsolete-tag-cache.t
481 test-obsolete.t
481 test-obsolete.t
482 test-oldcgi.t
482 test-oldcgi.t
483 test-origbackup-conflict.t
483 test-origbackup-conflict.t
484 test-pager-legacy.t
484 test-pager-legacy.t
485 test-pager.t
485 test-pager.t
486 test-parents.t
486 test-parents.t
487 test-parse-date.t
487 test-parse-date.t
488 test-parseindex.t
488 test-parseindex.t
489 test-parseindex2.py
489 test-parseindex2.py
490 test-patch-offset.t
490 test-patch-offset.t
491 test-patch.t
491 test-patch.t
492 test-patchbomb-bookmark.t
492 test-patchbomb-bookmark.t
493 test-patchbomb-tls.t
493 test-patchbomb-tls.t
494 test-patchbomb.t
494 test-patchbomb.t
495 test-pathconflicts-basic.t
495 test-pathconflicts-basic.t
496 test-pathconflicts-merge.t
496 test-pathconflicts-merge.t
497 test-pathconflicts-update.t
497 test-pathconflicts-update.t
498 test-pathencode.py
498 test-pathencode.py
499 test-pending.t
499 test-pending.t
500 test-permissions.t
500 test-permissions.t
501 test-phases-exchange.t
501 test-phases-exchange.t
502 test-phases.t
502 test-phases.t
503 test-profile.t
503 test-profile.t
504 test-progress.t
504 test-progress.t
505 test-propertycache.py
505 test-propertycache.py
506 test-pull-branch.t
506 test-pull-branch.t
507 test-pull-bundle.t
507 test-pull-bundle.t
508 test-pull-http.t
508 test-pull-http.t
509 test-pull-permission.t
509 test-pull-permission.t
510 test-pull-pull-corruption.t
510 test-pull-pull-corruption.t
511 test-pull-r.t
511 test-pull-r.t
512 test-pull-update.t
512 test-pull-update.t
513 test-pull.t
513 test-pull.t
514 test-purge.t
514 test-purge.t
515 test-push-cgi.t
515 test-push-cgi.t
516 test-push-checkheads-partial-C1.t
516 test-push-checkheads-partial-C1.t
517 test-push-checkheads-partial-C2.t
517 test-push-checkheads-partial-C2.t
518 test-push-checkheads-partial-C3.t
518 test-push-checkheads-partial-C3.t
519 test-push-checkheads-partial-C4.t
519 test-push-checkheads-partial-C4.t
520 test-push-checkheads-pruned-B1.t
520 test-push-checkheads-pruned-B1.t
521 test-push-checkheads-pruned-B2.t
521 test-push-checkheads-pruned-B2.t
522 test-push-checkheads-pruned-B3.t
522 test-push-checkheads-pruned-B3.t
523 test-push-checkheads-pruned-B4.t
523 test-push-checkheads-pruned-B4.t
524 test-push-checkheads-pruned-B5.t
524 test-push-checkheads-pruned-B5.t
525 test-push-checkheads-pruned-B6.t
525 test-push-checkheads-pruned-B6.t
526 test-push-checkheads-pruned-B7.t
526 test-push-checkheads-pruned-B7.t
527 test-push-checkheads-pruned-B8.t
527 test-push-checkheads-pruned-B8.t
528 test-push-checkheads-superceed-A1.t
528 test-push-checkheads-superceed-A1.t
529 test-push-checkheads-superceed-A2.t
529 test-push-checkheads-superceed-A2.t
530 test-push-checkheads-superceed-A3.t
530 test-push-checkheads-superceed-A3.t
531 test-push-checkheads-superceed-A4.t
531 test-push-checkheads-superceed-A4.t
532 test-push-checkheads-superceed-A5.t
532 test-push-checkheads-superceed-A5.t
533 test-push-checkheads-superceed-A6.t
533 test-push-checkheads-superceed-A6.t
534 test-push-checkheads-superceed-A7.t
534 test-push-checkheads-superceed-A7.t
535 test-push-checkheads-superceed-A8.t
535 test-push-checkheads-superceed-A8.t
536 test-push-checkheads-unpushed-D1.t
536 test-push-checkheads-unpushed-D1.t
537 test-push-checkheads-unpushed-D2.t
537 test-push-checkheads-unpushed-D2.t
538 test-push-checkheads-unpushed-D3.t
538 test-push-checkheads-unpushed-D3.t
539 test-push-checkheads-unpushed-D4.t
539 test-push-checkheads-unpushed-D4.t
540 test-push-checkheads-unpushed-D5.t
540 test-push-checkheads-unpushed-D5.t
541 test-push-checkheads-unpushed-D6.t
541 test-push-checkheads-unpushed-D6.t
542 test-push-checkheads-unpushed-D7.t
542 test-push-checkheads-unpushed-D7.t
543 test-push-http.t
543 test-push-http.t
544 test-push-race.t
544 test-push-race.t
545 test-push-warn.t
545 test-push-warn.t
546 test-push.t
546 test-push.t
547 test-pushvars.t
547 test-pushvars.t
548 test-qrecord.t
548 test-qrecord.t
549 test-rebase-abort.t
549 test-rebase-abort.t
550 test-rebase-backup.t
550 test-rebase-backup.t
551 test-rebase-base-flag.t
551 test-rebase-base-flag.t
552 test-rebase-bookmarks.t
552 test-rebase-bookmarks.t
553 test-rebase-brute-force.t
553 test-rebase-brute-force.t
554 test-rebase-cache.t
554 test-rebase-cache.t
555 test-rebase-check-restore.t
555 test-rebase-check-restore.t
556 test-rebase-collapse.t
556 test-rebase-collapse.t
557 test-rebase-conflicts.t
557 test-rebase-conflicts.t
558 test-rebase-dest.t
558 test-rebase-dest.t
559 test-rebase-detach.t
559 test-rebase-detach.t
560 test-rebase-emptycommit.t
560 test-rebase-emptycommit.t
561 test-rebase-inmemory.t
561 test-rebase-inmemory.t
562 test-rebase-interruptions.t
562 test-rebase-interruptions.t
563 test-rebase-issue-noparam-single-rev.t
563 test-rebase-issue-noparam-single-rev.t
564 test-rebase-legacy.t
564 test-rebase-legacy.t
565 test-rebase-mq-skip.t
565 test-rebase-mq-skip.t
566 test-rebase-mq.t
566 test-rebase-mq.t
567 test-rebase-named-branches.t
567 test-rebase-named-branches.t
568 test-rebase-newancestor.t
568 test-rebase-newancestor.t
569 test-rebase-obsolete.t
569 test-rebase-obsolete.t
570 test-rebase-parameters.t
570 test-rebase-parameters.t
571 test-rebase-partial.t
571 test-rebase-partial.t
572 test-rebase-pull.t
572 test-rebase-pull.t
573 test-rebase-rename.t
573 test-rebase-rename.t
574 test-rebase-scenario-global.t
574 test-rebase-scenario-global.t
575 test-rebase-templates.t
575 test-rebase-templates.t
576 test-rebase-transaction.t
576 test-rebase-transaction.t
577 test-rebuildstate.t
577 test-rebuildstate.t
578 test-record.t
578 test-record.t
579 test-releasenotes-formatting.t
579 test-releasenotes-formatting.t
580 test-releasenotes-merging.t
580 test-releasenotes-merging.t
581 test-releasenotes-parsing.t
581 test-releasenotes-parsing.t
582 test-relink.t
582 test-relink.t
583 test-remotefilelog-bad-configs.t
583 test-remotefilelog-bad-configs.t
584 test-remotefilelog-bgprefetch.t
584 test-remotefilelog-bgprefetch.t
585 test-remotefilelog-blame.t
585 test-remotefilelog-blame.t
586 test-remotefilelog-bundle2.t
586 test-remotefilelog-bundle2.t
587 test-remotefilelog-bundles.t
587 test-remotefilelog-bundles.t
588 test-remotefilelog-cacheprocess.t
588 test-remotefilelog-cacheprocess.t
589 test-remotefilelog-clone-tree.t
589 test-remotefilelog-clone-tree.t
590 test-remotefilelog-clone.t
590 test-remotefilelog-clone.t
591 test-remotefilelog-datapack.py
591 test-remotefilelog-datapack.py
592 test-remotefilelog-gcrepack.t
592 test-remotefilelog-gcrepack.t
593 test-remotefilelog-histpack.py
593 test-remotefilelog-histpack.py
594 test-remotefilelog-http.t
594 test-remotefilelog-http.t
595 test-remotefilelog-keepset.t
595 test-remotefilelog-keepset.t
596 test-remotefilelog-local.t
596 test-remotefilelog-local.t
597 test-remotefilelog-log.t
597 test-remotefilelog-log.t
598 test-remotefilelog-partial-shallow.t
598 test-remotefilelog-partial-shallow.t
599 test-remotefilelog-permissions.t
599 test-remotefilelog-permissions.t
600 test-remotefilelog-permisssions.t
600 test-remotefilelog-permisssions.t
601 test-remotefilelog-prefetch.t
601 test-remotefilelog-prefetch.t
602 test-remotefilelog-pull-noshallow.t
602 test-remotefilelog-pull-noshallow.t
603 test-remotefilelog-share.t
603 test-remotefilelog-share.t
604 test-remotefilelog-sparse.t
604 test-remotefilelog-sparse.t
605 test-remotefilelog-tags.t
605 test-remotefilelog-tags.t
606 test-remotefilelog-wireproto.t
606 test-remotefilelog-wireproto.t
607 test-remove.t
607 test-remove.t
608 test-removeemptydirs.t
608 test-removeemptydirs.t
609 test-rename-after-merge.t
609 test-rename-after-merge.t
610 test-rename-dir-merge.t
610 test-rename-dir-merge.t
611 test-rename-merge1.t
611 test-rename-merge1.t
612 test-rename-merge2.t
612 test-rename-merge2.t
613 test-rename.t
613 test-rename.t
614 test-repair-strip.t
614 test-repair-strip.t
615 test-repo-compengines.t
615 test-repo-compengines.t
616 test-requires.t
616 test-requires.t
617 test-resolve.t
617 test-resolve.t
618 test-revert-flags.t
618 test-revert-flags.t
619 test-revert-interactive.t
619 test-revert-interactive.t
620 test-revert-unknown.t
620 test-revert-unknown.t
621 test-revert.t
621 test-revert.t
622 test-revisions.t
622 test-revisions.t
623 test-revlog-ancestry.py
623 test-revlog-ancestry.py
624 test-revlog-group-emptyiter.t
624 test-revlog-group-emptyiter.t
625 test-revlog-mmapindex.t
625 test-revlog-mmapindex.t
626 test-revlog-packentry.t
626 test-revlog-packentry.t
627 test-revlog-raw.py
627 test-revlog-raw.py
628 test-revlog-v2.t
628 test-revlog-v2.t
629 test-revlog.t
629 test-revlog.t
630 test-revset-dirstate-parents.t
630 test-revset-dirstate-parents.t
631 test-revset-legacy-lookup.t
631 test-revset-legacy-lookup.t
632 test-revset-outgoing.t
632 test-revset-outgoing.t
633 test-revset2.t
633 test-rollback.t
634 test-rollback.t
634 test-run-tests.py
635 test-run-tests.py
635 test-run-tests.t
636 test-run-tests.t
636 test-rust-ancestor.py
637 test-rust-ancestor.py
637 test-schemes.t
638 test-schemes.t
638 test-serve.t
639 test-serve.t
639 test-setdiscovery.t
640 test-setdiscovery.t
640 test-share.t
641 test-share.t
641 test-shelve.t
642 test-shelve.t
642 test-shelve2.t
643 test-shelve2.t
643 test-show-stack.t
644 test-show-stack.t
644 test-show-work.t
645 test-show-work.t
645 test-show.t
646 test-show.t
646 test-simple-update.t
647 test-simple-update.t
647 test-simplekeyvaluefile.py
648 test-simplekeyvaluefile.py
648 test-simplemerge.py
649 test-simplemerge.py
649 test-single-head.t
650 test-single-head.t
650 test-sparse-clear.t
651 test-sparse-clear.t
651 test-sparse-clone.t
652 test-sparse-clone.t
652 test-sparse-import.t
653 test-sparse-import.t
653 test-sparse-merges.t
654 test-sparse-merges.t
654 test-sparse-profiles.t
655 test-sparse-profiles.t
655 test-sparse-requirement.t
656 test-sparse-requirement.t
656 test-sparse-verbose-json.t
657 test-sparse-verbose-json.t
657 test-sparse.t
658 test-sparse.t
658 test-split.t
659 test-split.t
659 test-ssh-bundle1.t
660 test-ssh-bundle1.t
660 test-ssh-clone-r.t
661 test-ssh-clone-r.t
661 test-ssh-proto-unbundle.t
662 test-ssh-proto-unbundle.t
662 test-ssh-proto.t
663 test-ssh-proto.t
663 test-ssh-repoerror.t
664 test-ssh-repoerror.t
664 test-ssh.t
665 test-ssh.t
665 test-sshserver.py
666 test-sshserver.py
666 test-stack.t
667 test-stack.t
667 test-static-http.t
668 test-static-http.t
668 test-status-color.t
669 test-status-color.t
669 test-status-inprocess.py
670 test-status-inprocess.py
670 test-status-rev.t
671 test-status-rev.t
671 test-status-terse.t
672 test-status-terse.t
672 test-status.t
673 test-status.t
673 test-storage.py
674 test-storage.py
674 test-stream-bundle-v2.t
675 test-stream-bundle-v2.t
675 test-strict.t
676 test-strict.t
676 test-strip-cross.t
677 test-strip-cross.t
677 test-strip.t
678 test-strip.t
678 test-subrepo-deep-nested-change.t
679 test-subrepo-deep-nested-change.t
679 test-subrepo-missing.t
680 test-subrepo-missing.t
680 test-subrepo-paths.t
681 test-subrepo-paths.t
681 test-subrepo-recursion.t
682 test-subrepo-recursion.t
682 test-subrepo-relative-path.t
683 test-subrepo-relative-path.t
683 test-subrepo.t
684 test-subrepo.t
684 test-symlink-os-yes-fs-no.py
685 test-symlink-os-yes-fs-no.py
685 test-symlink-placeholder.t
686 test-symlink-placeholder.t
686 test-symlinks.t
687 test-symlinks.t
687 test-tag.t
688 test-tag.t
688 test-tags.t
689 test-tags.t
689 test-template-basic.t
690 test-template-basic.t
690 test-template-functions.t
691 test-template-functions.t
691 test-template-keywords.t
692 test-template-keywords.t
692 test-template-map.t
693 test-template-map.t
693 test-tools.t
694 test-tools.t
694 test-transplant.t
695 test-transplant.t
695 test-treediscovery-legacy.t
696 test-treediscovery-legacy.t
696 test-treediscovery.t
697 test-treediscovery.t
697 test-treemanifest.t
698 test-treemanifest.t
698 test-ui-color.py
699 test-ui-color.py
699 test-ui-config.py
700 test-ui-config.py
700 test-ui-verbosity.py
701 test-ui-verbosity.py
701 test-unamend.t
702 test-unamend.t
702 test-unbundlehash.t
703 test-unbundlehash.t
703 test-uncommit.t
704 test-uncommit.t
704 test-unified-test.t
705 test-unified-test.t
705 test-unionrepo.t
706 test-unionrepo.t
706 test-unrelated-pull.t
707 test-unrelated-pull.t
707 test-up-local-change.t
708 test-up-local-change.t
708 test-update-atomic.t
709 test-update-atomic.t
709 test-update-branches.t
710 test-update-branches.t
710 test-update-dest.t
711 test-update-dest.t
711 test-update-issue1456.t
712 test-update-issue1456.t
712 test-update-names.t
713 test-update-names.t
713 test-update-reverse.t
714 test-update-reverse.t
714 test-upgrade-repo.t
715 test-upgrade-repo.t
715 test-url-download.t
716 test-url-download.t
716 test-url-rev.t
717 test-url-rev.t
717 test-url.py
718 test-url.py
718 test-username-newline.t
719 test-username-newline.t
719 test-util.py
720 test-util.py
720 test-verify.t
721 test-verify.t
721 test-walk.t
722 test-walk.t
722 test-walkrepo.py
723 test-walkrepo.py
723 test-websub.t
724 test-websub.t
724 test-win32text.t
725 test-win32text.t
725 test-wireproto-caching.t
726 test-wireproto-caching.t
726 test-wireproto-clientreactor.py
727 test-wireproto-clientreactor.py
727 test-wireproto-command-branchmap.t
728 test-wireproto-command-branchmap.t
728 test-wireproto-command-capabilities.t
729 test-wireproto-command-capabilities.t
729 test-wireproto-command-changesetdata.t
730 test-wireproto-command-changesetdata.t
730 test-wireproto-command-filedata.t
731 test-wireproto-command-filedata.t
731 test-wireproto-command-filesdata.t
732 test-wireproto-command-filesdata.t
732 test-wireproto-command-heads.t
733 test-wireproto-command-heads.t
733 test-wireproto-command-known.t
734 test-wireproto-command-known.t
734 test-wireproto-command-listkeys.t
735 test-wireproto-command-listkeys.t
735 test-wireproto-command-lookup.t
736 test-wireproto-command-lookup.t
736 test-wireproto-command-manifestdata.t
737 test-wireproto-command-manifestdata.t
737 test-wireproto-command-pushkey.t
738 test-wireproto-command-pushkey.t
738 test-wireproto-command-rawstorefiledata.t
739 test-wireproto-command-rawstorefiledata.t
739 test-wireproto-content-redirects.t
740 test-wireproto-content-redirects.t
740 test-wireproto-exchangev2.t
741 test-wireproto-exchangev2.t
741 test-wireproto-framing.py
742 test-wireproto-framing.py
742 test-wireproto-serverreactor.py
743 test-wireproto-serverreactor.py
743 test-wireproto.py
744 test-wireproto.py
744 test-wireproto.t
745 test-wireproto.t
745 test-wsgirequest.py
746 test-wsgirequest.py
746 test-xdg.t
747 test-xdg.t
@@ -1,1852 +1,1852 b''
1 $ HGENCODING=utf-8
1 $ HGENCODING=utf-8
2 $ export HGENCODING
2 $ export HGENCODING
3 $ cat >> $HGRCPATH << EOF
3 $ cat >> $HGRCPATH << EOF
4 > [extensions]
4 > [extensions]
5 > drawdag=$TESTDIR/drawdag.py
5 > drawdag=$TESTDIR/drawdag.py
6 > EOF
6 > EOF
7
7
8 $ try() {
8 $ try() {
9 > hg debugrevspec --debug "$@"
9 > hg debugrevspec --debug "$@"
10 > }
10 > }
11
11
12 $ log() {
12 $ log() {
13 > hg log --template '{rev}\n' -r "$1"
13 > hg log --template '{rev}\n' -r "$1"
14 > }
14 > }
15
15
16 $ hg init repo
16 $ hg init repo
17 $ cd repo
17 $ cd repo
18
18
19 $ echo a > a
19 $ echo a > a
20 $ hg branch a
20 $ hg branch a
21 marked working directory as branch a
21 marked working directory as branch a
22 (branches are permanent and global, did you want a bookmark?)
22 (branches are permanent and global, did you want a bookmark?)
23 $ hg ci -Aqm0
23 $ hg ci -Aqm0
24
24
25 $ echo b > b
25 $ echo b > b
26 $ hg branch b
26 $ hg branch b
27 marked working directory as branch b
27 marked working directory as branch b
28 $ hg ci -Aqm1
28 $ hg ci -Aqm1
29
29
30 $ rm a
30 $ rm a
31 $ hg branch a-b-c-
31 $ hg branch a-b-c-
32 marked working directory as branch a-b-c-
32 marked working directory as branch a-b-c-
33 $ hg ci -Aqm2 -u Bob
33 $ hg ci -Aqm2 -u Bob
34
34
35 $ hg log -r "extra('branch', 'a-b-c-')" --template '{rev}\n'
35 $ hg log -r "extra('branch', 'a-b-c-')" --template '{rev}\n'
36 2
36 2
37 $ hg log -r "extra('branch')" --template '{rev}\n'
37 $ hg log -r "extra('branch')" --template '{rev}\n'
38 0
38 0
39 1
39 1
40 2
40 2
41 $ hg log -r "extra('branch', 're:a')" --template '{rev} {branch}\n'
41 $ hg log -r "extra('branch', 're:a')" --template '{rev} {branch}\n'
42 0 a
42 0 a
43 2 a-b-c-
43 2 a-b-c-
44
44
45 $ hg co 1
45 $ hg co 1
46 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
46 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
47 $ hg branch +a+b+c+
47 $ hg branch +a+b+c+
48 marked working directory as branch +a+b+c+
48 marked working directory as branch +a+b+c+
49 $ hg ci -Aqm3
49 $ hg ci -Aqm3
50
50
51 $ hg co 2 # interleave
51 $ hg co 2 # interleave
52 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
52 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
53 $ echo bb > b
53 $ echo bb > b
54 $ hg branch -- -a-b-c-
54 $ hg branch -- -a-b-c-
55 marked working directory as branch -a-b-c-
55 marked working directory as branch -a-b-c-
56 $ hg ci -Aqm4 -d "May 12 2005"
56 $ hg ci -Aqm4 -d "May 12 2005"
57
57
58 $ hg co 3
58 $ hg co 3
59 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
59 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
60 $ hg branch !a/b/c/
60 $ hg branch !a/b/c/
61 marked working directory as branch !a/b/c/
61 marked working directory as branch !a/b/c/
62 $ hg ci -Aqm"5 bug"
62 $ hg ci -Aqm"5 bug"
63
63
64 $ hg merge 4
64 $ hg merge 4
65 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
65 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
66 (branch merge, don't forget to commit)
66 (branch merge, don't forget to commit)
67 $ hg branch _a_b_c_
67 $ hg branch _a_b_c_
68 marked working directory as branch _a_b_c_
68 marked working directory as branch _a_b_c_
69 $ hg ci -Aqm"6 issue619"
69 $ hg ci -Aqm"6 issue619"
70
70
71 $ hg branch .a.b.c.
71 $ hg branch .a.b.c.
72 marked working directory as branch .a.b.c.
72 marked working directory as branch .a.b.c.
73 $ hg ci -Aqm7
73 $ hg ci -Aqm7
74
74
75 $ hg branch all
75 $ hg branch all
76 marked working directory as branch all
76 marked working directory as branch all
77
77
78 $ hg co 4
78 $ hg co 4
79 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
79 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
80 $ hg branch Γ©
80 $ hg branch Γ©
81 marked working directory as branch \xc3\xa9 (esc)
81 marked working directory as branch \xc3\xa9 (esc)
82 $ hg ci -Aqm9
82 $ hg ci -Aqm9
83
83
84 $ hg tag -r6 1.0
84 $ hg tag -r6 1.0
85 $ hg bookmark -r6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
85 $ hg bookmark -r6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
86
86
87 $ hg clone --quiet -U -r 7 . ../remote1
87 $ hg clone --quiet -U -r 7 . ../remote1
88 $ hg clone --quiet -U -r 8 . ../remote2
88 $ hg clone --quiet -U -r 8 . ../remote2
89 $ echo "[paths]" >> .hg/hgrc
89 $ echo "[paths]" >> .hg/hgrc
90 $ echo "default = ../remote1" >> .hg/hgrc
90 $ echo "default = ../remote1" >> .hg/hgrc
91
91
92 test subtracting something from an addset
92 test subtracting something from an addset
93
93
94 $ log '(outgoing() or removes(a)) - removes(a)'
94 $ log '(outgoing() or removes(a)) - removes(a)'
95 8
95 8
96 9
96 9
97
97
98 test intersecting something with an addset
98 test intersecting something with an addset
99
99
100 $ log 'parents(outgoing() or removes(a))'
100 $ log 'parents(outgoing() or removes(a))'
101 1
101 1
102 4
102 4
103 5
103 5
104 8
104 8
105
105
106 test that `or` operation combines elements in the right order:
106 test that `or` operation combines elements in the right order:
107
107
108 $ log '3:4 or 2:5'
108 $ log '3:4 or 2:5'
109 3
109 3
110 4
110 4
111 2
111 2
112 5
112 5
113 $ log '3:4 or 5:2'
113 $ log '3:4 or 5:2'
114 3
114 3
115 4
115 4
116 5
116 5
117 2
117 2
118 $ log 'sort(3:4 or 2:5)'
118 $ log 'sort(3:4 or 2:5)'
119 2
119 2
120 3
120 3
121 4
121 4
122 5
122 5
123 $ log 'sort(3:4 or 5:2)'
123 $ log 'sort(3:4 or 5:2)'
124 2
124 2
125 3
125 3
126 4
126 4
127 5
127 5
128
128
129 test that more than one `-r`s are combined in the right order and deduplicated:
129 test that more than one `-r`s are combined in the right order and deduplicated:
130
130
131 $ hg log -T '{rev}\n' -r 3 -r 3 -r 4 -r 5:2 -r 'ancestors(4)'
131 $ hg log -T '{rev}\n' -r 3 -r 3 -r 4 -r 5:2 -r 'ancestors(4)'
132 3
132 3
133 4
133 4
134 5
134 5
135 2
135 2
136 0
136 0
137 1
137 1
138
138
139 test that `or` operation skips duplicated revisions from right-hand side
139 test that `or` operation skips duplicated revisions from right-hand side
140
140
141 $ try 'reverse(1::5) or ancestors(4)'
141 $ try 'reverse(1::5) or ancestors(4)'
142 (or
142 (or
143 (list
143 (list
144 (func
144 (func
145 (symbol 'reverse')
145 (symbol 'reverse')
146 (dagrange
146 (dagrange
147 (symbol '1')
147 (symbol '1')
148 (symbol '5')))
148 (symbol '5')))
149 (func
149 (func
150 (symbol 'ancestors')
150 (symbol 'ancestors')
151 (symbol '4'))))
151 (symbol '4'))))
152 * set:
152 * set:
153 <addset
153 <addset
154 <baseset- [1, 3, 5]>,
154 <baseset- [1, 3, 5]>,
155 <generatorsetdesc+>>
155 <generatorsetdesc+>>
156 5
156 5
157 3
157 3
158 1
158 1
159 0
159 0
160 2
160 2
161 4
161 4
162 $ try 'sort(ancestors(4) or reverse(1::5))'
162 $ try 'sort(ancestors(4) or reverse(1::5))'
163 (func
163 (func
164 (symbol 'sort')
164 (symbol 'sort')
165 (or
165 (or
166 (list
166 (list
167 (func
167 (func
168 (symbol 'ancestors')
168 (symbol 'ancestors')
169 (symbol '4'))
169 (symbol '4'))
170 (func
170 (func
171 (symbol 'reverse')
171 (symbol 'reverse')
172 (dagrange
172 (dagrange
173 (symbol '1')
173 (symbol '1')
174 (symbol '5'))))))
174 (symbol '5'))))))
175 * set:
175 * set:
176 <addset+
176 <addset+
177 <generatorsetdesc+>,
177 <generatorsetdesc+>,
178 <baseset- [1, 3, 5]>>
178 <baseset- [1, 3, 5]>>
179 0
179 0
180 1
180 1
181 2
181 2
182 3
182 3
183 4
183 4
184 5
184 5
185
185
186 test optimization of trivial `or` operation
186 test optimization of trivial `or` operation
187
187
188 $ try --optimize '0|(1)|"2"|-2|tip|null'
188 $ try --optimize '0|(1)|"2"|-2|tip|null'
189 (or
189 (or
190 (list
190 (list
191 (symbol '0')
191 (symbol '0')
192 (group
192 (group
193 (symbol '1'))
193 (symbol '1'))
194 (string '2')
194 (string '2')
195 (negate
195 (negate
196 (symbol '2'))
196 (symbol '2'))
197 (symbol 'tip')
197 (symbol 'tip')
198 (symbol 'null')))
198 (symbol 'null')))
199 * optimized:
199 * optimized:
200 (func
200 (func
201 (symbol '_list')
201 (symbol '_list')
202 (string '0\x001\x002\x00-2\x00tip\x00null'))
202 (string '0\x001\x002\x00-2\x00tip\x00null'))
203 * set:
203 * set:
204 <baseset [0, 1, 2, 8, 9, -1]>
204 <baseset [0, 1, 2, 8, 9, -1]>
205 0
205 0
206 1
206 1
207 2
207 2
208 8
208 8
209 9
209 9
210 -1
210 -1
211
211
212 $ try --optimize '0|1|2:3'
212 $ try --optimize '0|1|2:3'
213 (or
213 (or
214 (list
214 (list
215 (symbol '0')
215 (symbol '0')
216 (symbol '1')
216 (symbol '1')
217 (range
217 (range
218 (symbol '2')
218 (symbol '2')
219 (symbol '3'))))
219 (symbol '3'))))
220 * optimized:
220 * optimized:
221 (or
221 (or
222 (list
222 (list
223 (func
223 (func
224 (symbol '_list')
224 (symbol '_list')
225 (string '0\x001'))
225 (string '0\x001'))
226 (range
226 (range
227 (symbol '2')
227 (symbol '2')
228 (symbol '3'))))
228 (symbol '3'))))
229 * set:
229 * set:
230 <addset
230 <addset
231 <baseset [0, 1]>,
231 <baseset [0, 1]>,
232 <spanset+ 2:4>>
232 <spanset+ 2:4>>
233 0
233 0
234 1
234 1
235 2
235 2
236 3
236 3
237
237
238 $ try --optimize '0:1|2|3:4|5|6'
238 $ try --optimize '0:1|2|3:4|5|6'
239 (or
239 (or
240 (list
240 (list
241 (range
241 (range
242 (symbol '0')
242 (symbol '0')
243 (symbol '1'))
243 (symbol '1'))
244 (symbol '2')
244 (symbol '2')
245 (range
245 (range
246 (symbol '3')
246 (symbol '3')
247 (symbol '4'))
247 (symbol '4'))
248 (symbol '5')
248 (symbol '5')
249 (symbol '6')))
249 (symbol '6')))
250 * optimized:
250 * optimized:
251 (or
251 (or
252 (list
252 (list
253 (range
253 (range
254 (symbol '0')
254 (symbol '0')
255 (symbol '1'))
255 (symbol '1'))
256 (symbol '2')
256 (symbol '2')
257 (range
257 (range
258 (symbol '3')
258 (symbol '3')
259 (symbol '4'))
259 (symbol '4'))
260 (func
260 (func
261 (symbol '_list')
261 (symbol '_list')
262 (string '5\x006'))))
262 (string '5\x006'))))
263 * set:
263 * set:
264 <addset
264 <addset
265 <addset
265 <addset
266 <spanset+ 0:2>,
266 <spanset+ 0:2>,
267 <baseset [2]>>,
267 <baseset [2]>>,
268 <addset
268 <addset
269 <spanset+ 3:5>,
269 <spanset+ 3:5>,
270 <baseset [5, 6]>>>
270 <baseset [5, 6]>>>
271 0
271 0
272 1
272 1
273 2
273 2
274 3
274 3
275 4
275 4
276 5
276 5
277 6
277 6
278
278
279 unoptimized `or` looks like this
279 unoptimized `or` looks like this
280
280
281 $ try --no-optimized -p analyzed '0|1|2|3|4'
281 $ try --no-optimized -p analyzed '0|1|2|3|4'
282 * analyzed:
282 * analyzed:
283 (or
283 (or
284 (list
284 (list
285 (symbol '0')
285 (symbol '0')
286 (symbol '1')
286 (symbol '1')
287 (symbol '2')
287 (symbol '2')
288 (symbol '3')
288 (symbol '3')
289 (symbol '4')))
289 (symbol '4')))
290 * set:
290 * set:
291 <addset
291 <addset
292 <addset
292 <addset
293 <baseset [0]>,
293 <baseset [0]>,
294 <baseset [1]>>,
294 <baseset [1]>>,
295 <addset
295 <addset
296 <baseset [2]>,
296 <baseset [2]>,
297 <addset
297 <addset
298 <baseset [3]>,
298 <baseset [3]>,
299 <baseset [4]>>>>
299 <baseset [4]>>>>
300 0
300 0
301 1
301 1
302 2
302 2
303 3
303 3
304 4
304 4
305
305
306 test that `_list` should be narrowed by provided `subset`
306 test that `_list` should be narrowed by provided `subset`
307
307
308 $ log '0:2 and (null|1|2|3)'
308 $ log '0:2 and (null|1|2|3)'
309 1
309 1
310 2
310 2
311
311
312 test that `_list` should remove duplicates
312 test that `_list` should remove duplicates
313
313
314 $ log '0|1|2|1|2|-1|tip'
314 $ log '0|1|2|1|2|-1|tip'
315 0
315 0
316 1
316 1
317 2
317 2
318 9
318 9
319
319
320 test unknown revision in `_list`
320 test unknown revision in `_list`
321
321
322 $ log '0|unknown'
322 $ log '0|unknown'
323 abort: unknown revision 'unknown'!
323 abort: unknown revision 'unknown'!
324 [255]
324 [255]
325
325
326 test integer range in `_list`
326 test integer range in `_list`
327
327
328 $ log '-1|-10'
328 $ log '-1|-10'
329 9
329 9
330 0
330 0
331
331
332 $ log '-10|-11'
332 $ log '-10|-11'
333 abort: unknown revision '-11'!
333 abort: unknown revision '-11'!
334 [255]
334 [255]
335
335
336 $ log '9|10'
336 $ log '9|10'
337 abort: unknown revision '10'!
337 abort: unknown revision '10'!
338 [255]
338 [255]
339
339
340 test '0000' != '0' in `_list`
340 test '0000' != '0' in `_list`
341
341
342 $ log '0|0000'
342 $ log '0|0000'
343 0
343 0
344 -1
344 -1
345
345
346 test ',' in `_list`
346 test ',' in `_list`
347 $ log '0,1'
347 $ log '0,1'
348 hg: parse error: can't use a list in this context
348 hg: parse error: can't use a list in this context
349 (see 'hg help "revsets.x or y"')
349 (see 'hg help "revsets.x or y"')
350 [255]
350 [255]
351 $ try '0,1,2'
351 $ try '0,1,2'
352 (list
352 (list
353 (symbol '0')
353 (symbol '0')
354 (symbol '1')
354 (symbol '1')
355 (symbol '2'))
355 (symbol '2'))
356 hg: parse error: can't use a list in this context
356 hg: parse error: can't use a list in this context
357 (see 'hg help "revsets.x or y"')
357 (see 'hg help "revsets.x or y"')
358 [255]
358 [255]
359
359
360 test that chained `or` operations make balanced addsets
360 test that chained `or` operations make balanced addsets
361
361
362 $ try '0:1|1:2|2:3|3:4|4:5'
362 $ try '0:1|1:2|2:3|3:4|4:5'
363 (or
363 (or
364 (list
364 (list
365 (range
365 (range
366 (symbol '0')
366 (symbol '0')
367 (symbol '1'))
367 (symbol '1'))
368 (range
368 (range
369 (symbol '1')
369 (symbol '1')
370 (symbol '2'))
370 (symbol '2'))
371 (range
371 (range
372 (symbol '2')
372 (symbol '2')
373 (symbol '3'))
373 (symbol '3'))
374 (range
374 (range
375 (symbol '3')
375 (symbol '3')
376 (symbol '4'))
376 (symbol '4'))
377 (range
377 (range
378 (symbol '4')
378 (symbol '4')
379 (symbol '5'))))
379 (symbol '5'))))
380 * set:
380 * set:
381 <addset
381 <addset
382 <addset
382 <addset
383 <spanset+ 0:2>,
383 <spanset+ 0:2>,
384 <spanset+ 1:3>>,
384 <spanset+ 1:3>>,
385 <addset
385 <addset
386 <spanset+ 2:4>,
386 <spanset+ 2:4>,
387 <addset
387 <addset
388 <spanset+ 3:5>,
388 <spanset+ 3:5>,
389 <spanset+ 4:6>>>>
389 <spanset+ 4:6>>>>
390 0
390 0
391 1
391 1
392 2
392 2
393 3
393 3
394 4
394 4
395 5
395 5
396
396
397 no crash by empty group "()" while optimizing `or` operations
397 no crash by empty group "()" while optimizing `or` operations
398
398
399 $ try --optimize '0|()'
399 $ try --optimize '0|()'
400 (or
400 (or
401 (list
401 (list
402 (symbol '0')
402 (symbol '0')
403 (group
403 (group
404 None)))
404 None)))
405 * optimized:
405 * optimized:
406 (or
406 (or
407 (list
407 (list
408 (symbol '0')
408 (symbol '0')
409 None))
409 None))
410 hg: parse error: missing argument
410 hg: parse error: missing argument
411 [255]
411 [255]
412
412
413 test that chained `or` operations never eat up stack (issue4624)
413 test that chained `or` operations never eat up stack (issue4624)
414 (uses `0:1` instead of `0` to avoid future optimization of trivial revisions)
414 (uses `0:1` instead of `0` to avoid future optimization of trivial revisions)
415
415
416 $ hg log -T '{rev}\n' -r `"$PYTHON" -c "print('+'.join(['0:1'] * 500))"`
416 $ hg log -T '{rev}\n' -r `"$PYTHON" -c "print('+'.join(['0:1'] * 500))"`
417 0
417 0
418 1
418 1
419
419
420 test that repeated `-r` options never eat up stack (issue4565)
420 test that repeated `-r` options never eat up stack (issue4565)
421 (uses `-r 0::1` to avoid possible optimization at old-style parser)
421 (uses `-r 0::1` to avoid possible optimization at old-style parser)
422
422
423 $ hg log -T '{rev}\n' `"$PYTHON" -c "for i in range(500): print('-r 0::1 ')"`
423 $ hg log -T '{rev}\n' `"$PYTHON" -c "for i in range(500): print('-r 0::1 ')"`
424 0
424 0
425 1
425 1
426
426
427 check that conversion to only works
427 check that conversion to only works
428 $ try --optimize '::3 - ::1'
428 $ try --optimize '::3 - ::1'
429 (minus
429 (minus
430 (dagrangepre
430 (dagrangepre
431 (symbol '3'))
431 (symbol '3'))
432 (dagrangepre
432 (dagrangepre
433 (symbol '1')))
433 (symbol '1')))
434 * optimized:
434 * optimized:
435 (func
435 (func
436 (symbol 'only')
436 (symbol 'only')
437 (list
437 (list
438 (symbol '3')
438 (symbol '3')
439 (symbol '1')))
439 (symbol '1')))
440 * set:
440 * set:
441 <baseset+ [3]>
441 <baseset+ [3]>
442 3
442 3
443 $ try --optimize 'ancestors(1) - ancestors(3)'
443 $ try --optimize 'ancestors(1) - ancestors(3)'
444 (minus
444 (minus
445 (func
445 (func
446 (symbol 'ancestors')
446 (symbol 'ancestors')
447 (symbol '1'))
447 (symbol '1'))
448 (func
448 (func
449 (symbol 'ancestors')
449 (symbol 'ancestors')
450 (symbol '3')))
450 (symbol '3')))
451 * optimized:
451 * optimized:
452 (func
452 (func
453 (symbol 'only')
453 (symbol 'only')
454 (list
454 (list
455 (symbol '1')
455 (symbol '1')
456 (symbol '3')))
456 (symbol '3')))
457 * set:
457 * set:
458 <baseset+ []>
458 <baseset+ []>
459 $ try --optimize 'not ::2 and ::6'
459 $ try --optimize 'not ::2 and ::6'
460 (and
460 (and
461 (not
461 (not
462 (dagrangepre
462 (dagrangepre
463 (symbol '2')))
463 (symbol '2')))
464 (dagrangepre
464 (dagrangepre
465 (symbol '6')))
465 (symbol '6')))
466 * optimized:
466 * optimized:
467 (func
467 (func
468 (symbol 'only')
468 (symbol 'only')
469 (list
469 (list
470 (symbol '6')
470 (symbol '6')
471 (symbol '2')))
471 (symbol '2')))
472 * set:
472 * set:
473 <baseset+ [3, 4, 5, 6]>
473 <baseset+ [3, 4, 5, 6]>
474 3
474 3
475 4
475 4
476 5
476 5
477 6
477 6
478 $ try --optimize 'ancestors(6) and not ancestors(4)'
478 $ try --optimize 'ancestors(6) and not ancestors(4)'
479 (and
479 (and
480 (func
480 (func
481 (symbol 'ancestors')
481 (symbol 'ancestors')
482 (symbol '6'))
482 (symbol '6'))
483 (not
483 (not
484 (func
484 (func
485 (symbol 'ancestors')
485 (symbol 'ancestors')
486 (symbol '4'))))
486 (symbol '4'))))
487 * optimized:
487 * optimized:
488 (func
488 (func
489 (symbol 'only')
489 (symbol 'only')
490 (list
490 (list
491 (symbol '6')
491 (symbol '6')
492 (symbol '4')))
492 (symbol '4')))
493 * set:
493 * set:
494 <baseset+ [3, 5, 6]>
494 <baseset+ [3, 5, 6]>
495 3
495 3
496 5
496 5
497 6
497 6
498
498
499 no crash by empty group "()" while optimizing to "only()"
499 no crash by empty group "()" while optimizing to "only()"
500
500
501 $ try --optimize '::1 and ()'
501 $ try --optimize '::1 and ()'
502 (and
502 (and
503 (dagrangepre
503 (dagrangepre
504 (symbol '1'))
504 (symbol '1'))
505 (group
505 (group
506 None))
506 None))
507 * optimized:
507 * optimized:
508 (andsmally
508 (andsmally
509 (func
509 (func
510 (symbol 'ancestors')
510 (symbol 'ancestors')
511 (symbol '1'))
511 (symbol '1'))
512 None)
512 None)
513 hg: parse error: missing argument
513 hg: parse error: missing argument
514 [255]
514 [255]
515
515
516 optimization to only() works only if ancestors() takes only one argument
516 optimization to only() works only if ancestors() takes only one argument
517
517
518 $ hg debugrevspec -p optimized 'ancestors(6) - ancestors(4, 1)'
518 $ hg debugrevspec -p optimized 'ancestors(6) - ancestors(4, 1)'
519 * optimized:
519 * optimized:
520 (difference
520 (difference
521 (func
521 (func
522 (symbol 'ancestors')
522 (symbol 'ancestors')
523 (symbol '6'))
523 (symbol '6'))
524 (func
524 (func
525 (symbol 'ancestors')
525 (symbol 'ancestors')
526 (list
526 (list
527 (symbol '4')
527 (symbol '4')
528 (symbol '1'))))
528 (symbol '1'))))
529 0
529 0
530 1
530 1
531 3
531 3
532 5
532 5
533 6
533 6
534 $ hg debugrevspec -p optimized 'ancestors(6, 1) - ancestors(4)'
534 $ hg debugrevspec -p optimized 'ancestors(6, 1) - ancestors(4)'
535 * optimized:
535 * optimized:
536 (difference
536 (difference
537 (func
537 (func
538 (symbol 'ancestors')
538 (symbol 'ancestors')
539 (list
539 (list
540 (symbol '6')
540 (symbol '6')
541 (symbol '1')))
541 (symbol '1')))
542 (func
542 (func
543 (symbol 'ancestors')
543 (symbol 'ancestors')
544 (symbol '4')))
544 (symbol '4')))
545 5
545 5
546 6
546 6
547
547
548 optimization disabled if keyword arguments passed (because we're too lazy
548 optimization disabled if keyword arguments passed (because we're too lazy
549 to support it)
549 to support it)
550
550
551 $ hg debugrevspec -p optimized 'ancestors(set=6) - ancestors(set=4)'
551 $ hg debugrevspec -p optimized 'ancestors(set=6) - ancestors(set=4)'
552 * optimized:
552 * optimized:
553 (difference
553 (difference
554 (func
554 (func
555 (symbol 'ancestors')
555 (symbol 'ancestors')
556 (keyvalue
556 (keyvalue
557 (symbol 'set')
557 (symbol 'set')
558 (symbol '6')))
558 (symbol '6')))
559 (func
559 (func
560 (symbol 'ancestors')
560 (symbol 'ancestors')
561 (keyvalue
561 (keyvalue
562 (symbol 'set')
562 (symbol 'set')
563 (symbol '4'))))
563 (symbol '4'))))
564 3
564 3
565 5
565 5
566 6
566 6
567
567
568 invalid function call should not be optimized to only()
568 invalid function call should not be optimized to only()
569
569
570 $ log '"ancestors"(6) and not ancestors(4)'
570 $ log '"ancestors"(6) and not ancestors(4)'
571 hg: parse error: not a symbol
571 hg: parse error: not a symbol
572 [255]
572 [255]
573
573
574 $ log 'ancestors(6) and not "ancestors"(4)'
574 $ log 'ancestors(6) and not "ancestors"(4)'
575 hg: parse error: not a symbol
575 hg: parse error: not a symbol
576 [255]
576 [255]
577
577
578 test empty string
578 test empty string
579
579
580 $ log ''
580 $ log ''
581 hg: parse error: empty query
581 hg: parse error: empty query
582 [255]
582 [255]
583 $ log 'parents("")'
583 $ log 'parents("")'
584 hg: parse error: empty string is not a valid revision
584 hg: parse error: empty string is not a valid revision
585 [255]
585 [255]
586
586
587 test empty revset
587 test empty revset
588 $ hg log 'none()'
588 $ hg log 'none()'
589
589
590 we can use patterns when searching for tags
590 we can use patterns when searching for tags
591
591
592 $ log 'tag("1..*")'
592 $ log 'tag("1..*")'
593 abort: tag '1..*' does not exist!
593 abort: tag '1..*' does not exist!
594 [255]
594 [255]
595 $ log 'tag("re:1..*")'
595 $ log 'tag("re:1..*")'
596 6
596 6
597 $ log 'tag("re:[0-9].[0-9]")'
597 $ log 'tag("re:[0-9].[0-9]")'
598 6
598 6
599 $ log 'tag("literal:1.0")'
599 $ log 'tag("literal:1.0")'
600 6
600 6
601 $ log 'tag("re:0..*")'
601 $ log 'tag("re:0..*")'
602
602
603 $ log 'tag(unknown)'
603 $ log 'tag(unknown)'
604 abort: tag 'unknown' does not exist!
604 abort: tag 'unknown' does not exist!
605 [255]
605 [255]
606 $ log 'tag("re:unknown")'
606 $ log 'tag("re:unknown")'
607 $ log 'present(tag("unknown"))'
607 $ log 'present(tag("unknown"))'
608 $ log 'present(tag("re:unknown"))'
608 $ log 'present(tag("re:unknown"))'
609 $ log 'branch(unknown)'
609 $ log 'branch(unknown)'
610 abort: unknown revision 'unknown'!
610 abort: unknown revision 'unknown'!
611 [255]
611 [255]
612 $ log 'branch("literal:unknown")'
612 $ log 'branch("literal:unknown")'
613 abort: branch 'unknown' does not exist!
613 abort: branch 'unknown' does not exist!
614 [255]
614 [255]
615 $ log 'branch("re:unknown")'
615 $ log 'branch("re:unknown")'
616 $ log 'present(branch("unknown"))'
616 $ log 'present(branch("unknown"))'
617 $ log 'present(branch("re:unknown"))'
617 $ log 'present(branch("re:unknown"))'
618 $ log 'user(bob)'
618 $ log 'user(bob)'
619 2
619 2
620
620
621 $ log '4::8'
621 $ log '4::8'
622 4
622 4
623 8
623 8
624 $ log '4:8'
624 $ log '4:8'
625 4
625 4
626 5
626 5
627 6
627 6
628 7
628 7
629 8
629 8
630
630
631 $ log 'sort(!merge() & (modifies(b) | user(bob) | keyword(bug) | keyword(issue) & 1::9), "-date")'
631 $ log 'sort(!merge() & (modifies(b) | user(bob) | keyword(bug) | keyword(issue) & 1::9), "-date")'
632 4
632 4
633 2
633 2
634 5
634 5
635
635
636 $ log 'not 0 and 0:2'
636 $ log 'not 0 and 0:2'
637 1
637 1
638 2
638 2
639 $ log 'not 1 and 0:2'
639 $ log 'not 1 and 0:2'
640 0
640 0
641 2
641 2
642 $ log 'not 2 and 0:2'
642 $ log 'not 2 and 0:2'
643 0
643 0
644 1
644 1
645 $ log '(1 and 2)::'
645 $ log '(1 and 2)::'
646 $ log '(1 and 2):'
646 $ log '(1 and 2):'
647 $ log '(1 and 2):3'
647 $ log '(1 and 2):3'
648 $ log 'sort(head(), -rev)'
648 $ log 'sort(head(), -rev)'
649 9
649 9
650 7
650 7
651 6
651 6
652 5
652 5
653 4
653 4
654 3
654 3
655 2
655 2
656 1
656 1
657 0
657 0
658 $ log '4::8 - 8'
658 $ log '4::8 - 8'
659 4
659 4
660
660
661 matching() should preserve the order of the input set:
661 matching() should preserve the order of the input set:
662
662
663 $ log '(2 or 3 or 1) and matching(1 or 2 or 3)'
663 $ log '(2 or 3 or 1) and matching(1 or 2 or 3)'
664 2
664 2
665 3
665 3
666 1
666 1
667
667
668 $ log 'named("unknown")'
668 $ log 'named("unknown")'
669 abort: namespace 'unknown' does not exist!
669 abort: namespace 'unknown' does not exist!
670 [255]
670 [255]
671 $ log 'named("re:unknown")'
671 $ log 'named("re:unknown")'
672 $ log 'present(named("unknown"))'
672 $ log 'present(named("unknown"))'
673 $ log 'present(named("re:unknown"))'
673 $ log 'present(named("re:unknown"))'
674
674
675 $ log 'tag()'
675 $ log 'tag()'
676 6
676 6
677 $ log 'named("tags")'
677 $ log 'named("tags")'
678 6
678 6
679
679
680 issue2437
680 issue2437
681
681
682 $ log '3 and p1(5)'
682 $ log '3 and p1(5)'
683 3
683 3
684 $ log '4 and p2(6)'
684 $ log '4 and p2(6)'
685 4
685 4
686 $ log '1 and parents(:2)'
686 $ log '1 and parents(:2)'
687 1
687 1
688 $ log '2 and children(1:)'
688 $ log '2 and children(1:)'
689 2
689 2
690 $ log 'roots(all()) or roots(all())'
690 $ log 'roots(all()) or roots(all())'
691 0
691 0
692 $ hg debugrevspec 'roots(all()) or roots(all())'
692 $ hg debugrevspec 'roots(all()) or roots(all())'
693 0
693 0
694 $ log 'heads(branch(Γ©)) or heads(branch(Γ©))'
694 $ log 'heads(branch(Γ©)) or heads(branch(Γ©))'
695 9
695 9
696 $ log 'ancestors(8) and (heads(branch("-a-b-c-")) or heads(branch(Γ©)))'
696 $ log 'ancestors(8) and (heads(branch("-a-b-c-")) or heads(branch(Γ©)))'
697 4
697 4
698
698
699 issue2654: report a parse error if the revset was not completely parsed
699 issue2654: report a parse error if the revset was not completely parsed
700
700
701 $ log '1 OR 2'
701 $ log '1 OR 2'
702 hg: parse error at 2: invalid token
702 hg: parse error at 2: invalid token
703 (1 OR 2
703 (1 OR 2
704 ^ here)
704 ^ here)
705 [255]
705 [255]
706
706
707 or operator should preserve ordering:
707 or operator should preserve ordering:
708 $ log 'reverse(2::4) or tip'
708 $ log 'reverse(2::4) or tip'
709 4
709 4
710 2
710 2
711 9
711 9
712
712
713 parentrevspec
713 parentrevspec
714
714
715 $ log 'merge()^0'
715 $ log 'merge()^0'
716 6
716 6
717 $ log 'merge()^'
717 $ log 'merge()^'
718 5
718 5
719 $ log 'merge()^1'
719 $ log 'merge()^1'
720 5
720 5
721 $ log 'merge()^2'
721 $ log 'merge()^2'
722 4
722 4
723 $ log '(not merge())^2'
723 $ log '(not merge())^2'
724 $ log 'merge()^^'
724 $ log 'merge()^^'
725 3
725 3
726 $ log 'merge()^1^'
726 $ log 'merge()^1^'
727 3
727 3
728 $ log 'merge()^^^'
728 $ log 'merge()^^^'
729 1
729 1
730
730
731 $ hg debugrevspec -s '(merge() | 0)~-1'
731 $ hg debugrevspec -s '(merge() | 0)~-1'
732 * set:
732 * set:
733 <baseset+ [1, 7]>
733 <baseset+ [1, 7]>
734 1
734 1
735 7
735 7
736 $ log 'merge()~-1'
736 $ log 'merge()~-1'
737 7
737 7
738 $ log 'tip~-1'
738 $ log 'tip~-1'
739 $ log '(tip | merge())~-1'
739 $ log '(tip | merge())~-1'
740 7
740 7
741 $ log 'merge()~0'
741 $ log 'merge()~0'
742 6
742 6
743 $ log 'merge()~1'
743 $ log 'merge()~1'
744 5
744 5
745 $ log 'merge()~2'
745 $ log 'merge()~2'
746 3
746 3
747 $ log 'merge()~2^1'
747 $ log 'merge()~2^1'
748 1
748 1
749 $ log 'merge()~3'
749 $ log 'merge()~3'
750 1
750 1
751
751
752 $ log '(-3:tip)^'
752 $ log '(-3:tip)^'
753 4
753 4
754 6
754 6
755 8
755 8
756
756
757 $ log 'tip^foo'
757 $ log 'tip^foo'
758 hg: parse error: ^ expects a number 0, 1, or 2
758 hg: parse error: ^ expects a number 0, 1, or 2
759 [255]
759 [255]
760
760
761 $ log 'branchpoint()~-1'
761 $ log 'branchpoint()~-1'
762 abort: revision in set has more than one child!
762 abort: revision in set has more than one child!
763 [255]
763 [255]
764
764
765 Bogus function gets suggestions
765 Bogus function gets suggestions
766 $ log 'add()'
766 $ log 'add()'
767 hg: parse error: unknown identifier: add
767 hg: parse error: unknown identifier: add
768 (did you mean adds?)
768 (did you mean adds?)
769 [255]
769 [255]
770 $ log 'added()'
770 $ log 'added()'
771 hg: parse error: unknown identifier: added
771 hg: parse error: unknown identifier: added
772 (did you mean adds?)
772 (did you mean adds?)
773 [255]
773 [255]
774 $ log 'remo()'
774 $ log 'remo()'
775 hg: parse error: unknown identifier: remo
775 hg: parse error: unknown identifier: remo
776 (did you mean one of remote, removes?)
776 (did you mean one of remote, removes?)
777 [255]
777 [255]
778 $ log 'babar()'
778 $ log 'babar()'
779 hg: parse error: unknown identifier: babar
779 hg: parse error: unknown identifier: babar
780 [255]
780 [255]
781
781
782 Bogus function with a similar internal name doesn't suggest the internal name
782 Bogus function with a similar internal name doesn't suggest the internal name
783 $ log 'matches()'
783 $ log 'matches()'
784 hg: parse error: unknown identifier: matches
784 hg: parse error: unknown identifier: matches
785 (did you mean matching?)
785 (did you mean matching?)
786 [255]
786 [255]
787
787
788 Undocumented functions aren't suggested as similar either
788 Undocumented functions aren't suggested as similar either
789 $ log 'tagged2()'
789 $ log 'tagged2()'
790 hg: parse error: unknown identifier: tagged2
790 hg: parse error: unknown identifier: tagged2
791 [255]
791 [255]
792
792
793 multiple revspecs
793 multiple revspecs
794
794
795 $ hg log -r 'tip~1:tip' -r 'tip~2:tip~1' --template '{rev}\n'
795 $ hg log -r 'tip~1:tip' -r 'tip~2:tip~1' --template '{rev}\n'
796 8
796 8
797 9
797 9
798 4
798 4
799 5
799 5
800 6
800 6
801 7
801 7
802
802
803 test usage in revpair (with "+")
803 test usage in revpair (with "+")
804
804
805 (real pair)
805 (real pair)
806
806
807 $ hg diff -r 'tip^^' -r 'tip'
807 $ hg diff -r 'tip^^' -r 'tip'
808 diff -r 2326846efdab -r 24286f4ae135 .hgtags
808 diff -r 2326846efdab -r 24286f4ae135 .hgtags
809 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
809 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
810 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
810 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
811 @@ -0,0 +1,1 @@
811 @@ -0,0 +1,1 @@
812 +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0
812 +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0
813 $ hg diff -r 'tip^^::tip'
813 $ hg diff -r 'tip^^::tip'
814 diff -r 2326846efdab -r 24286f4ae135 .hgtags
814 diff -r 2326846efdab -r 24286f4ae135 .hgtags
815 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
815 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
816 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
816 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000
817 @@ -0,0 +1,1 @@
817 @@ -0,0 +1,1 @@
818 +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0
818 +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0
819
819
820 (single rev)
820 (single rev)
821
821
822 $ hg diff -r 'tip^' -r 'tip^'
822 $ hg diff -r 'tip^' -r 'tip^'
823 $ hg diff -r 'tip^:tip^'
823 $ hg diff -r 'tip^:tip^'
824
824
825 (single rev that does not looks like a range)
825 (single rev that does not looks like a range)
826
826
827 $ hg diff -r 'tip^::tip^ or tip^'
827 $ hg diff -r 'tip^::tip^ or tip^'
828 diff -r d5d0dcbdc4d9 .hgtags
828 diff -r d5d0dcbdc4d9 .hgtags
829 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
829 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
830 +++ b/.hgtags * (glob)
830 +++ b/.hgtags * (glob)
831 @@ -0,0 +1,1 @@
831 @@ -0,0 +1,1 @@
832 +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0
832 +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0
833 $ hg diff -r 'tip^ or tip^'
833 $ hg diff -r 'tip^ or tip^'
834 diff -r d5d0dcbdc4d9 .hgtags
834 diff -r d5d0dcbdc4d9 .hgtags
835 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
835 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
836 +++ b/.hgtags * (glob)
836 +++ b/.hgtags * (glob)
837 @@ -0,0 +1,1 @@
837 @@ -0,0 +1,1 @@
838 +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0
838 +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0
839
839
840 (no rev)
840 (no rev)
841
841
842 $ hg diff -r 'author("babar") or author("celeste")'
842 $ hg diff -r 'author("babar") or author("celeste")'
843 abort: empty revision range
843 abort: empty revision range
844 [255]
844 [255]
845
845
846 aliases:
846 aliases:
847
847
848 $ echo '[revsetalias]' >> .hg/hgrc
848 $ echo '[revsetalias]' >> .hg/hgrc
849 $ echo 'm = merge()' >> .hg/hgrc
849 $ echo 'm = merge()' >> .hg/hgrc
850 (revset aliases can override builtin revsets)
850 (revset aliases can override builtin revsets)
851 $ echo 'p2($1) = p1($1)' >> .hg/hgrc
851 $ echo 'p2($1) = p1($1)' >> .hg/hgrc
852 $ echo 'sincem = descendants(m)' >> .hg/hgrc
852 $ echo 'sincem = descendants(m)' >> .hg/hgrc
853 $ echo 'd($1) = reverse(sort($1, date))' >> .hg/hgrc
853 $ echo 'd($1) = reverse(sort($1, date))' >> .hg/hgrc
854 $ echo 'rs(ARG1, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
854 $ echo 'rs(ARG1, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
855 $ echo 'rs4(ARG1, ARGA, ARGB, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
855 $ echo 'rs4(ARG1, ARGA, ARGB, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
856
856
857 $ try m
857 $ try m
858 (symbol 'm')
858 (symbol 'm')
859 * expanded:
859 * expanded:
860 (func
860 (func
861 (symbol 'merge')
861 (symbol 'merge')
862 None)
862 None)
863 * set:
863 * set:
864 <filteredset
864 <filteredset
865 <fullreposet+ 0:10>,
865 <fullreposet+ 0:10>,
866 <merge>>
866 <merge>>
867 6
867 6
868
868
869 $ HGPLAIN=1
869 $ HGPLAIN=1
870 $ export HGPLAIN
870 $ export HGPLAIN
871 $ try m
871 $ try m
872 (symbol 'm')
872 (symbol 'm')
873 abort: unknown revision 'm'!
873 abort: unknown revision 'm'!
874 [255]
874 [255]
875
875
876 $ HGPLAINEXCEPT=revsetalias
876 $ HGPLAINEXCEPT=revsetalias
877 $ export HGPLAINEXCEPT
877 $ export HGPLAINEXCEPT
878 $ try m
878 $ try m
879 (symbol 'm')
879 (symbol 'm')
880 * expanded:
880 * expanded:
881 (func
881 (func
882 (symbol 'merge')
882 (symbol 'merge')
883 None)
883 None)
884 * set:
884 * set:
885 <filteredset
885 <filteredset
886 <fullreposet+ 0:10>,
886 <fullreposet+ 0:10>,
887 <merge>>
887 <merge>>
888 6
888 6
889
889
890 $ unset HGPLAIN
890 $ unset HGPLAIN
891 $ unset HGPLAINEXCEPT
891 $ unset HGPLAINEXCEPT
892
892
893 $ try 'p2(.)'
893 $ try 'p2(.)'
894 (func
894 (func
895 (symbol 'p2')
895 (symbol 'p2')
896 (symbol '.'))
896 (symbol '.'))
897 * expanded:
897 * expanded:
898 (func
898 (func
899 (symbol 'p1')
899 (symbol 'p1')
900 (symbol '.'))
900 (symbol '.'))
901 * set:
901 * set:
902 <baseset+ [8]>
902 <baseset+ [8]>
903 8
903 8
904
904
905 $ HGPLAIN=1
905 $ HGPLAIN=1
906 $ export HGPLAIN
906 $ export HGPLAIN
907 $ try 'p2(.)'
907 $ try 'p2(.)'
908 (func
908 (func
909 (symbol 'p2')
909 (symbol 'p2')
910 (symbol '.'))
910 (symbol '.'))
911 * set:
911 * set:
912 <baseset+ []>
912 <baseset+ []>
913
913
914 $ HGPLAINEXCEPT=revsetalias
914 $ HGPLAINEXCEPT=revsetalias
915 $ export HGPLAINEXCEPT
915 $ export HGPLAINEXCEPT
916 $ try 'p2(.)'
916 $ try 'p2(.)'
917 (func
917 (func
918 (symbol 'p2')
918 (symbol 'p2')
919 (symbol '.'))
919 (symbol '.'))
920 * expanded:
920 * expanded:
921 (func
921 (func
922 (symbol 'p1')
922 (symbol 'p1')
923 (symbol '.'))
923 (symbol '.'))
924 * set:
924 * set:
925 <baseset+ [8]>
925 <baseset+ [8]>
926 8
926 8
927
927
928 $ unset HGPLAIN
928 $ unset HGPLAIN
929 $ unset HGPLAINEXCEPT
929 $ unset HGPLAINEXCEPT
930
930
931 test alias recursion
931 test alias recursion
932
932
933 $ try sincem
933 $ try sincem
934 (symbol 'sincem')
934 (symbol 'sincem')
935 * expanded:
935 * expanded:
936 (func
936 (func
937 (symbol 'descendants')
937 (symbol 'descendants')
938 (func
938 (func
939 (symbol 'merge')
939 (symbol 'merge')
940 None))
940 None))
941 * set:
941 * set:
942 <generatorsetasc+>
942 <generatorsetasc+>
943 6
943 6
944 7
944 7
945
945
946 test infinite recursion
946 test infinite recursion
947
947
948 $ echo 'recurse1 = recurse2' >> .hg/hgrc
948 $ echo 'recurse1 = recurse2' >> .hg/hgrc
949 $ echo 'recurse2 = recurse1' >> .hg/hgrc
949 $ echo 'recurse2 = recurse1' >> .hg/hgrc
950 $ try recurse1
950 $ try recurse1
951 (symbol 'recurse1')
951 (symbol 'recurse1')
952 hg: parse error: infinite expansion of revset alias "recurse1" detected
952 hg: parse error: infinite expansion of revset alias "recurse1" detected
953 [255]
953 [255]
954
954
955 $ echo 'level1($1, $2) = $1 or $2' >> .hg/hgrc
955 $ echo 'level1($1, $2) = $1 or $2' >> .hg/hgrc
956 $ echo 'level2($1, $2) = level1($2, $1)' >> .hg/hgrc
956 $ echo 'level2($1, $2) = level1($2, $1)' >> .hg/hgrc
957 $ try "level2(level1(1, 2), 3)"
957 $ try "level2(level1(1, 2), 3)"
958 (func
958 (func
959 (symbol 'level2')
959 (symbol 'level2')
960 (list
960 (list
961 (func
961 (func
962 (symbol 'level1')
962 (symbol 'level1')
963 (list
963 (list
964 (symbol '1')
964 (symbol '1')
965 (symbol '2')))
965 (symbol '2')))
966 (symbol '3')))
966 (symbol '3')))
967 * expanded:
967 * expanded:
968 (or
968 (or
969 (list
969 (list
970 (symbol '3')
970 (symbol '3')
971 (or
971 (or
972 (list
972 (list
973 (symbol '1')
973 (symbol '1')
974 (symbol '2')))))
974 (symbol '2')))))
975 * set:
975 * set:
976 <addset
976 <addset
977 <baseset [3]>,
977 <baseset [3]>,
978 <baseset [1, 2]>>
978 <baseset [1, 2]>>
979 3
979 3
980 1
980 1
981 2
981 2
982
982
983 test nesting and variable passing
983 test nesting and variable passing
984
984
985 $ echo 'nested($1) = nested2($1)' >> .hg/hgrc
985 $ echo 'nested($1) = nested2($1)' >> .hg/hgrc
986 $ echo 'nested2($1) = nested3($1)' >> .hg/hgrc
986 $ echo 'nested2($1) = nested3($1)' >> .hg/hgrc
987 $ echo 'nested3($1) = max($1)' >> .hg/hgrc
987 $ echo 'nested3($1) = max($1)' >> .hg/hgrc
988 $ try 'nested(2:5)'
988 $ try 'nested(2:5)'
989 (func
989 (func
990 (symbol 'nested')
990 (symbol 'nested')
991 (range
991 (range
992 (symbol '2')
992 (symbol '2')
993 (symbol '5')))
993 (symbol '5')))
994 * expanded:
994 * expanded:
995 (func
995 (func
996 (symbol 'max')
996 (symbol 'max')
997 (range
997 (range
998 (symbol '2')
998 (symbol '2')
999 (symbol '5')))
999 (symbol '5')))
1000 * set:
1000 * set:
1001 <baseset
1001 <baseset
1002 <max
1002 <max
1003 <fullreposet+ 0:10>,
1003 <fullreposet+ 0:10>,
1004 <spanset+ 2:6>>>
1004 <spanset+ 2:6>>>
1005 5
1005 5
1006
1006
1007 test chained `or` operations are flattened at parsing phase
1007 test chained `or` operations are flattened at parsing phase
1008
1008
1009 $ echo 'chainedorops($1, $2, $3) = $1|$2|$3' >> .hg/hgrc
1009 $ echo 'chainedorops($1, $2, $3) = $1|$2|$3' >> .hg/hgrc
1010 $ try 'chainedorops(0:1, 1:2, 2:3)'
1010 $ try 'chainedorops(0:1, 1:2, 2:3)'
1011 (func
1011 (func
1012 (symbol 'chainedorops')
1012 (symbol 'chainedorops')
1013 (list
1013 (list
1014 (range
1014 (range
1015 (symbol '0')
1015 (symbol '0')
1016 (symbol '1'))
1016 (symbol '1'))
1017 (range
1017 (range
1018 (symbol '1')
1018 (symbol '1')
1019 (symbol '2'))
1019 (symbol '2'))
1020 (range
1020 (range
1021 (symbol '2')
1021 (symbol '2')
1022 (symbol '3'))))
1022 (symbol '3'))))
1023 * expanded:
1023 * expanded:
1024 (or
1024 (or
1025 (list
1025 (list
1026 (range
1026 (range
1027 (symbol '0')
1027 (symbol '0')
1028 (symbol '1'))
1028 (symbol '1'))
1029 (range
1029 (range
1030 (symbol '1')
1030 (symbol '1')
1031 (symbol '2'))
1031 (symbol '2'))
1032 (range
1032 (range
1033 (symbol '2')
1033 (symbol '2')
1034 (symbol '3'))))
1034 (symbol '3'))))
1035 * set:
1035 * set:
1036 <addset
1036 <addset
1037 <spanset+ 0:2>,
1037 <spanset+ 0:2>,
1038 <addset
1038 <addset
1039 <spanset+ 1:3>,
1039 <spanset+ 1:3>,
1040 <spanset+ 2:4>>>
1040 <spanset+ 2:4>>>
1041 0
1041 0
1042 1
1042 1
1043 2
1043 2
1044 3
1044 3
1045
1045
1046 test variable isolation, variable placeholders are rewritten as string
1046 test variable isolation, variable placeholders are rewritten as string
1047 then parsed and matched again as string. Check they do not leak too
1047 then parsed and matched again as string. Check they do not leak too
1048 far away.
1048 far away.
1049
1049
1050 $ echo 'injectparamasstring = max("$1")' >> .hg/hgrc
1050 $ echo 'injectparamasstring = max("$1")' >> .hg/hgrc
1051 $ echo 'callinjection($1) = descendants(injectparamasstring)' >> .hg/hgrc
1051 $ echo 'callinjection($1) = descendants(injectparamasstring)' >> .hg/hgrc
1052 $ try 'callinjection(2:5)'
1052 $ try 'callinjection(2:5)'
1053 (func
1053 (func
1054 (symbol 'callinjection')
1054 (symbol 'callinjection')
1055 (range
1055 (range
1056 (symbol '2')
1056 (symbol '2')
1057 (symbol '5')))
1057 (symbol '5')))
1058 * expanded:
1058 * expanded:
1059 (func
1059 (func
1060 (symbol 'descendants')
1060 (symbol 'descendants')
1061 (func
1061 (func
1062 (symbol 'max')
1062 (symbol 'max')
1063 (string '$1')))
1063 (string '$1')))
1064 abort: unknown revision '$1'!
1064 abort: unknown revision '$1'!
1065 [255]
1065 [255]
1066
1066
1067 test scope of alias expansion: 'universe' is expanded prior to 'shadowall(0)',
1067 test scope of alias expansion: 'universe' is expanded prior to 'shadowall(0)',
1068 but 'all()' should never be substituted to '0()'.
1068 but 'all()' should never be substituted to '0()'.
1069
1069
1070 $ echo 'universe = all()' >> .hg/hgrc
1070 $ echo 'universe = all()' >> .hg/hgrc
1071 $ echo 'shadowall(all) = all and universe' >> .hg/hgrc
1071 $ echo 'shadowall(all) = all and universe' >> .hg/hgrc
1072 $ try 'shadowall(0)'
1072 $ try 'shadowall(0)'
1073 (func
1073 (func
1074 (symbol 'shadowall')
1074 (symbol 'shadowall')
1075 (symbol '0'))
1075 (symbol '0'))
1076 * expanded:
1076 * expanded:
1077 (and
1077 (and
1078 (symbol '0')
1078 (symbol '0')
1079 (func
1079 (func
1080 (symbol 'all')
1080 (symbol 'all')
1081 None))
1081 None))
1082 * set:
1082 * set:
1083 <filteredset
1083 <filteredset
1084 <baseset [0]>,
1084 <baseset [0]>,
1085 <spanset+ 0:10>>
1085 <spanset+ 0:10>>
1086 0
1086 0
1087
1087
1088 test unknown reference:
1088 test unknown reference:
1089
1089
1090 $ try "unknownref(0)" --config 'revsetalias.unknownref($1)=$1:$2'
1090 $ try "unknownref(0)" --config 'revsetalias.unknownref($1)=$1:$2'
1091 (func
1091 (func
1092 (symbol 'unknownref')
1092 (symbol 'unknownref')
1093 (symbol '0'))
1093 (symbol '0'))
1094 abort: bad definition of revset alias "unknownref": invalid symbol '$2'
1094 abort: bad definition of revset alias "unknownref": invalid symbol '$2'
1095 [255]
1095 [255]
1096
1096
1097 $ hg debugrevspec --debug --config revsetalias.anotherbadone='branch(' "tip"
1097 $ hg debugrevspec --debug --config revsetalias.anotherbadone='branch(' "tip"
1098 (symbol 'tip')
1098 (symbol 'tip')
1099 warning: bad definition of revset alias "anotherbadone": at 7: not a prefix: end
1099 warning: bad definition of revset alias "anotherbadone": at 7: not a prefix: end
1100 * set:
1100 * set:
1101 <baseset [9]>
1101 <baseset [9]>
1102 9
1102 9
1103
1103
1104 $ try 'tip'
1104 $ try 'tip'
1105 (symbol 'tip')
1105 (symbol 'tip')
1106 * set:
1106 * set:
1107 <baseset [9]>
1107 <baseset [9]>
1108 9
1108 9
1109
1109
1110 $ hg debugrevspec --debug --config revsetalias.'bad name'='tip' "tip"
1110 $ hg debugrevspec --debug --config revsetalias.'bad name'='tip' "tip"
1111 (symbol 'tip')
1111 (symbol 'tip')
1112 warning: bad declaration of revset alias "bad name": at 4: invalid token
1112 warning: bad declaration of revset alias "bad name": at 4: invalid token
1113 * set:
1113 * set:
1114 <baseset [9]>
1114 <baseset [9]>
1115 9
1115 9
1116 $ echo 'strictreplacing($1, $10) = $10 or desc("$1")' >> .hg/hgrc
1116 $ echo 'strictreplacing($1, $10) = $10 or desc("$1")' >> .hg/hgrc
1117 $ try 'strictreplacing("foo", tip)'
1117 $ try 'strictreplacing("foo", tip)'
1118 (func
1118 (func
1119 (symbol 'strictreplacing')
1119 (symbol 'strictreplacing')
1120 (list
1120 (list
1121 (string 'foo')
1121 (string 'foo')
1122 (symbol 'tip')))
1122 (symbol 'tip')))
1123 * expanded:
1123 * expanded:
1124 (or
1124 (or
1125 (list
1125 (list
1126 (symbol 'tip')
1126 (symbol 'tip')
1127 (func
1127 (func
1128 (symbol 'desc')
1128 (symbol 'desc')
1129 (string '$1'))))
1129 (string '$1'))))
1130 * set:
1130 * set:
1131 <addset
1131 <addset
1132 <baseset [9]>,
1132 <baseset [9]>,
1133 <filteredset
1133 <filteredset
1134 <fullreposet+ 0:10>,
1134 <fullreposet+ 0:10>,
1135 <desc '$1'>>>
1135 <desc '$1'>>>
1136 9
1136 9
1137
1137
1138 $ try 'd(2:5)'
1138 $ try 'd(2:5)'
1139 (func
1139 (func
1140 (symbol 'd')
1140 (symbol 'd')
1141 (range
1141 (range
1142 (symbol '2')
1142 (symbol '2')
1143 (symbol '5')))
1143 (symbol '5')))
1144 * expanded:
1144 * expanded:
1145 (func
1145 (func
1146 (symbol 'reverse')
1146 (symbol 'reverse')
1147 (func
1147 (func
1148 (symbol 'sort')
1148 (symbol 'sort')
1149 (list
1149 (list
1150 (range
1150 (range
1151 (symbol '2')
1151 (symbol '2')
1152 (symbol '5'))
1152 (symbol '5'))
1153 (symbol 'date'))))
1153 (symbol 'date'))))
1154 * set:
1154 * set:
1155 <baseset [4, 5, 3, 2]>
1155 <baseset [4, 5, 3, 2]>
1156 4
1156 4
1157 5
1157 5
1158 3
1158 3
1159 2
1159 2
1160 $ try 'rs(2 or 3, date)'
1160 $ try 'rs(2 or 3, date)'
1161 (func
1161 (func
1162 (symbol 'rs')
1162 (symbol 'rs')
1163 (list
1163 (list
1164 (or
1164 (or
1165 (list
1165 (list
1166 (symbol '2')
1166 (symbol '2')
1167 (symbol '3')))
1167 (symbol '3')))
1168 (symbol 'date')))
1168 (symbol 'date')))
1169 * expanded:
1169 * expanded:
1170 (func
1170 (func
1171 (symbol 'reverse')
1171 (symbol 'reverse')
1172 (func
1172 (func
1173 (symbol 'sort')
1173 (symbol 'sort')
1174 (list
1174 (list
1175 (or
1175 (or
1176 (list
1176 (list
1177 (symbol '2')
1177 (symbol '2')
1178 (symbol '3')))
1178 (symbol '3')))
1179 (symbol 'date'))))
1179 (symbol 'date'))))
1180 * set:
1180 * set:
1181 <baseset [3, 2]>
1181 <baseset [3, 2]>
1182 3
1182 3
1183 2
1183 2
1184 $ try 'rs()'
1184 $ try 'rs()'
1185 (func
1185 (func
1186 (symbol 'rs')
1186 (symbol 'rs')
1187 None)
1187 None)
1188 hg: parse error: invalid number of arguments: 0
1188 hg: parse error: invalid number of arguments: 0
1189 [255]
1189 [255]
1190 $ try 'rs(2)'
1190 $ try 'rs(2)'
1191 (func
1191 (func
1192 (symbol 'rs')
1192 (symbol 'rs')
1193 (symbol '2'))
1193 (symbol '2'))
1194 hg: parse error: invalid number of arguments: 1
1194 hg: parse error: invalid number of arguments: 1
1195 [255]
1195 [255]
1196 $ try 'rs(2, data, 7)'
1196 $ try 'rs(2, data, 7)'
1197 (func
1197 (func
1198 (symbol 'rs')
1198 (symbol 'rs')
1199 (list
1199 (list
1200 (symbol '2')
1200 (symbol '2')
1201 (symbol 'data')
1201 (symbol 'data')
1202 (symbol '7')))
1202 (symbol '7')))
1203 hg: parse error: invalid number of arguments: 3
1203 hg: parse error: invalid number of arguments: 3
1204 [255]
1204 [255]
1205 $ try 'rs4(2 or 3, x, x, date)'
1205 $ try 'rs4(2 or 3, x, x, date)'
1206 (func
1206 (func
1207 (symbol 'rs4')
1207 (symbol 'rs4')
1208 (list
1208 (list
1209 (or
1209 (or
1210 (list
1210 (list
1211 (symbol '2')
1211 (symbol '2')
1212 (symbol '3')))
1212 (symbol '3')))
1213 (symbol 'x')
1213 (symbol 'x')
1214 (symbol 'x')
1214 (symbol 'x')
1215 (symbol 'date')))
1215 (symbol 'date')))
1216 * expanded:
1216 * expanded:
1217 (func
1217 (func
1218 (symbol 'reverse')
1218 (symbol 'reverse')
1219 (func
1219 (func
1220 (symbol 'sort')
1220 (symbol 'sort')
1221 (list
1221 (list
1222 (or
1222 (or
1223 (list
1223 (list
1224 (symbol '2')
1224 (symbol '2')
1225 (symbol '3')))
1225 (symbol '3')))
1226 (symbol 'date'))))
1226 (symbol 'date'))))
1227 * set:
1227 * set:
1228 <baseset [3, 2]>
1228 <baseset [3, 2]>
1229 3
1229 3
1230 2
1230 2
1231
1231
1232 issue4553: check that revset aliases override existing hash prefix
1232 issue4553: check that revset aliases override existing hash prefix
1233
1233
1234 $ hg log -qr e
1234 $ hg log -qr e
1235 6:e0cc66ef77e8
1235 6:e0cc66ef77e8
1236
1236
1237 $ hg log -qr e --config revsetalias.e="all()"
1237 $ hg log -qr e --config revsetalias.e="all()"
1238 0:2785f51eece5
1238 0:2785f51eece5
1239 1:d75937da8da0
1239 1:d75937da8da0
1240 2:5ed5505e9f1c
1240 2:5ed5505e9f1c
1241 3:8528aa5637f2
1241 3:8528aa5637f2
1242 4:2326846efdab
1242 4:2326846efdab
1243 5:904fa392b941
1243 5:904fa392b941
1244 6:e0cc66ef77e8
1244 6:e0cc66ef77e8
1245 7:013af1973af4
1245 7:013af1973af4
1246 8:d5d0dcbdc4d9
1246 8:d5d0dcbdc4d9
1247 9:24286f4ae135
1247 9:24286f4ae135
1248
1248
1249 $ hg log -qr e: --config revsetalias.e="0"
1249 $ hg log -qr e: --config revsetalias.e="0"
1250 0:2785f51eece5
1250 0:2785f51eece5
1251 1:d75937da8da0
1251 1:d75937da8da0
1252 2:5ed5505e9f1c
1252 2:5ed5505e9f1c
1253 3:8528aa5637f2
1253 3:8528aa5637f2
1254 4:2326846efdab
1254 4:2326846efdab
1255 5:904fa392b941
1255 5:904fa392b941
1256 6:e0cc66ef77e8
1256 6:e0cc66ef77e8
1257 7:013af1973af4
1257 7:013af1973af4
1258 8:d5d0dcbdc4d9
1258 8:d5d0dcbdc4d9
1259 9:24286f4ae135
1259 9:24286f4ae135
1260
1260
1261 $ hg log -qr :e --config revsetalias.e="9"
1261 $ hg log -qr :e --config revsetalias.e="9"
1262 0:2785f51eece5
1262 0:2785f51eece5
1263 1:d75937da8da0
1263 1:d75937da8da0
1264 2:5ed5505e9f1c
1264 2:5ed5505e9f1c
1265 3:8528aa5637f2
1265 3:8528aa5637f2
1266 4:2326846efdab
1266 4:2326846efdab
1267 5:904fa392b941
1267 5:904fa392b941
1268 6:e0cc66ef77e8
1268 6:e0cc66ef77e8
1269 7:013af1973af4
1269 7:013af1973af4
1270 8:d5d0dcbdc4d9
1270 8:d5d0dcbdc4d9
1271 9:24286f4ae135
1271 9:24286f4ae135
1272
1272
1273 $ hg log -qr e:
1273 $ hg log -qr e:
1274 6:e0cc66ef77e8
1274 6:e0cc66ef77e8
1275 7:013af1973af4
1275 7:013af1973af4
1276 8:d5d0dcbdc4d9
1276 8:d5d0dcbdc4d9
1277 9:24286f4ae135
1277 9:24286f4ae135
1278
1278
1279 $ hg log -qr :e
1279 $ hg log -qr :e
1280 0:2785f51eece5
1280 0:2785f51eece5
1281 1:d75937da8da0
1281 1:d75937da8da0
1282 2:5ed5505e9f1c
1282 2:5ed5505e9f1c
1283 3:8528aa5637f2
1283 3:8528aa5637f2
1284 4:2326846efdab
1284 4:2326846efdab
1285 5:904fa392b941
1285 5:904fa392b941
1286 6:e0cc66ef77e8
1286 6:e0cc66ef77e8
1287
1287
1288 issue2549 - correct optimizations
1288 issue2549 - correct optimizations
1289
1289
1290 $ try 'limit(1 or 2 or 3, 2) and not 2'
1290 $ try 'limit(1 or 2 or 3, 2) and not 2'
1291 (and
1291 (and
1292 (func
1292 (func
1293 (symbol 'limit')
1293 (symbol 'limit')
1294 (list
1294 (list
1295 (or
1295 (or
1296 (list
1296 (list
1297 (symbol '1')
1297 (symbol '1')
1298 (symbol '2')
1298 (symbol '2')
1299 (symbol '3')))
1299 (symbol '3')))
1300 (symbol '2')))
1300 (symbol '2')))
1301 (not
1301 (not
1302 (symbol '2')))
1302 (symbol '2')))
1303 * set:
1303 * set:
1304 <filteredset
1304 <filteredset
1305 <baseset [1, 2]>,
1305 <baseset [1, 2]>,
1306 <not
1306 <not
1307 <baseset [2]>>>
1307 <baseset [2]>>>
1308 1
1308 1
1309 $ try 'max(1 or 2) and not 2'
1309 $ try 'max(1 or 2) and not 2'
1310 (and
1310 (and
1311 (func
1311 (func
1312 (symbol 'max')
1312 (symbol 'max')
1313 (or
1313 (or
1314 (list
1314 (list
1315 (symbol '1')
1315 (symbol '1')
1316 (symbol '2'))))
1316 (symbol '2'))))
1317 (not
1317 (not
1318 (symbol '2')))
1318 (symbol '2')))
1319 * set:
1319 * set:
1320 <filteredset
1320 <filteredset
1321 <baseset
1321 <baseset
1322 <max
1322 <max
1323 <fullreposet+ 0:10>,
1323 <fullreposet+ 0:10>,
1324 <baseset [1, 2]>>>,
1324 <baseset [1, 2]>>>,
1325 <not
1325 <not
1326 <baseset [2]>>>
1326 <baseset [2]>>>
1327 $ try 'min(1 or 2) and not 1'
1327 $ try 'min(1 or 2) and not 1'
1328 (and
1328 (and
1329 (func
1329 (func
1330 (symbol 'min')
1330 (symbol 'min')
1331 (or
1331 (or
1332 (list
1332 (list
1333 (symbol '1')
1333 (symbol '1')
1334 (symbol '2'))))
1334 (symbol '2'))))
1335 (not
1335 (not
1336 (symbol '1')))
1336 (symbol '1')))
1337 * set:
1337 * set:
1338 <filteredset
1338 <filteredset
1339 <baseset
1339 <baseset
1340 <min
1340 <min
1341 <fullreposet+ 0:10>,
1341 <fullreposet+ 0:10>,
1342 <baseset [1, 2]>>>,
1342 <baseset [1, 2]>>>,
1343 <not
1343 <not
1344 <baseset [1]>>>
1344 <baseset [1]>>>
1345 $ try 'last(1 or 2, 1) and not 2'
1345 $ try 'last(1 or 2, 1) and not 2'
1346 (and
1346 (and
1347 (func
1347 (func
1348 (symbol 'last')
1348 (symbol 'last')
1349 (list
1349 (list
1350 (or
1350 (or
1351 (list
1351 (list
1352 (symbol '1')
1352 (symbol '1')
1353 (symbol '2')))
1353 (symbol '2')))
1354 (symbol '1')))
1354 (symbol '1')))
1355 (not
1355 (not
1356 (symbol '2')))
1356 (symbol '2')))
1357 * set:
1357 * set:
1358 <filteredset
1358 <filteredset
1359 <baseset [2]>,
1359 <baseset [2]>,
1360 <not
1360 <not
1361 <baseset [2]>>>
1361 <baseset [2]>>>
1362
1362
1363 issue4289 - ordering of built-ins
1363 issue4289 - ordering of built-ins
1364 $ hg log -M -q -r 3:2
1364 $ hg log -M -q -r 3:2
1365 3:8528aa5637f2
1365 3:8528aa5637f2
1366 2:5ed5505e9f1c
1366 2:5ed5505e9f1c
1367
1367
1368 test revsets started with 40-chars hash (issue3669)
1368 test revsets started with 40-chars hash (issue3669)
1369
1369
1370 $ ISSUE3669_TIP=`hg tip --template '{node}'`
1370 $ ISSUE3669_TIP=`hg tip --template '{node}'`
1371 $ hg log -r "${ISSUE3669_TIP}" --template '{rev}\n'
1371 $ hg log -r "${ISSUE3669_TIP}" --template '{rev}\n'
1372 9
1372 9
1373 $ hg log -r "${ISSUE3669_TIP}^" --template '{rev}\n'
1373 $ hg log -r "${ISSUE3669_TIP}^" --template '{rev}\n'
1374 8
1374 8
1375
1375
1376 test or-ed indirect predicates (issue3775)
1376 test or-ed indirect predicates (issue3775)
1377
1377
1378 $ log '6 or 6^1' | sort
1378 $ log '6 or 6^1' | sort
1379 5
1379 5
1380 6
1380 6
1381 $ log '6^1 or 6' | sort
1381 $ log '6^1 or 6' | sort
1382 5
1382 5
1383 6
1383 6
1384 $ log '4 or 4~1' | sort
1384 $ log '4 or 4~1' | sort
1385 2
1385 2
1386 4
1386 4
1387 $ log '4~1 or 4' | sort
1387 $ log '4~1 or 4' | sort
1388 2
1388 2
1389 4
1389 4
1390 $ log '(0 or 2):(4 or 6) or 0 or 6' | sort
1390 $ log '(0 or 2):(4 or 6) or 0 or 6' | sort
1391 0
1391 0
1392 1
1392 1
1393 2
1393 2
1394 3
1394 3
1395 4
1395 4
1396 5
1396 5
1397 6
1397 6
1398 $ log '0 or 6 or (0 or 2):(4 or 6)' | sort
1398 $ log '0 or 6 or (0 or 2):(4 or 6)' | sort
1399 0
1399 0
1400 1
1400 1
1401 2
1401 2
1402 3
1402 3
1403 4
1403 4
1404 5
1404 5
1405 6
1405 6
1406
1406
1407 tests for 'remote()' predicate:
1407 tests for 'remote()' predicate:
1408 #. (csets in remote) (id) (remote)
1408 #. (csets in remote) (id) (remote)
1409 1. less than local current branch "default"
1409 1. less than local current branch "default"
1410 2. same with local specified "default"
1410 2. same with local specified "default"
1411 3. more than local specified specified
1411 3. more than local specified specified
1412
1412
1413 $ hg clone --quiet -U . ../remote3
1413 $ hg clone --quiet -U . ../remote3
1414 $ cd ../remote3
1414 $ cd ../remote3
1415 $ hg update -q 7
1415 $ hg update -q 7
1416 $ echo r > r
1416 $ echo r > r
1417 $ hg ci -Aqm 10
1417 $ hg ci -Aqm 10
1418 $ log 'remote()'
1418 $ log 'remote()'
1419 7
1419 7
1420 $ log 'remote("a-b-c-")'
1420 $ log 'remote("a-b-c-")'
1421 2
1421 2
1422 $ cd ../repo
1422 $ cd ../repo
1423 $ log 'remote(".a.b.c.", "../remote3")'
1423 $ log 'remote(".a.b.c.", "../remote3")'
1424
1424
1425 tests for concatenation of strings/symbols by "##"
1425 tests for concatenation of strings/symbols by "##"
1426
1426
1427 $ try "278 ## '5f5' ## 1ee ## 'ce5'"
1427 $ try "278 ## '5f5' ## 1ee ## 'ce5'"
1428 (_concat
1428 (_concat
1429 (_concat
1429 (_concat
1430 (_concat
1430 (_concat
1431 (symbol '278')
1431 (symbol '278')
1432 (string '5f5'))
1432 (string '5f5'))
1433 (symbol '1ee'))
1433 (symbol '1ee'))
1434 (string 'ce5'))
1434 (string 'ce5'))
1435 * concatenated:
1435 * concatenated:
1436 (string '2785f51eece5')
1436 (string '2785f51eece5')
1437 * set:
1437 * set:
1438 <baseset [0]>
1438 <baseset [0]>
1439 0
1439 0
1440
1440
1441 $ echo 'cat4($1, $2, $3, $4) = $1 ## $2 ## $3 ## $4' >> .hg/hgrc
1441 $ echo 'cat4($1, $2, $3, $4) = $1 ## $2 ## $3 ## $4' >> .hg/hgrc
1442 $ try "cat4(278, '5f5', 1ee, 'ce5')"
1442 $ try "cat4(278, '5f5', 1ee, 'ce5')"
1443 (func
1443 (func
1444 (symbol 'cat4')
1444 (symbol 'cat4')
1445 (list
1445 (list
1446 (symbol '278')
1446 (symbol '278')
1447 (string '5f5')
1447 (string '5f5')
1448 (symbol '1ee')
1448 (symbol '1ee')
1449 (string 'ce5')))
1449 (string 'ce5')))
1450 * expanded:
1450 * expanded:
1451 (_concat
1451 (_concat
1452 (_concat
1452 (_concat
1453 (_concat
1453 (_concat
1454 (symbol '278')
1454 (symbol '278')
1455 (string '5f5'))
1455 (string '5f5'))
1456 (symbol '1ee'))
1456 (symbol '1ee'))
1457 (string 'ce5'))
1457 (string 'ce5'))
1458 * concatenated:
1458 * concatenated:
1459 (string '2785f51eece5')
1459 (string '2785f51eece5')
1460 * set:
1460 * set:
1461 <baseset [0]>
1461 <baseset [0]>
1462 0
1462 0
1463
1463
1464 (check concatenation in alias nesting)
1464 (check concatenation in alias nesting)
1465
1465
1466 $ echo 'cat2($1, $2) = $1 ## $2' >> .hg/hgrc
1466 $ echo 'cat2($1, $2) = $1 ## $2' >> .hg/hgrc
1467 $ echo 'cat2x2($1, $2, $3, $4) = cat2($1 ## $2, $3 ## $4)' >> .hg/hgrc
1467 $ echo 'cat2x2($1, $2, $3, $4) = cat2($1 ## $2, $3 ## $4)' >> .hg/hgrc
1468 $ log "cat2x2(278, '5f5', 1ee, 'ce5')"
1468 $ log "cat2x2(278, '5f5', 1ee, 'ce5')"
1469 0
1469 0
1470
1470
1471 (check operator priority)
1471 (check operator priority)
1472
1472
1473 $ echo 'cat2n2($1, $2, $3, $4) = $1 ## $2 or $3 ## $4~2' >> .hg/hgrc
1473 $ echo 'cat2n2($1, $2, $3, $4) = $1 ## $2 or $3 ## $4~2' >> .hg/hgrc
1474 $ log "cat2n2(2785f5, 1eece5, 24286f, 4ae135)"
1474 $ log "cat2n2(2785f5, 1eece5, 24286f, 4ae135)"
1475 0
1475 0
1476 4
1476 4
1477
1477
1478 $ cd ..
1478 $ cd ..
1479
1479
1480 prepare repository that has "default" branches of multiple roots
1480 prepare repository that has "default" branches of multiple roots
1481
1481
1482 $ hg init namedbranch
1482 $ hg init namedbranch
1483 $ cd namedbranch
1483 $ cd namedbranch
1484
1484
1485 $ echo default0 >> a
1485 $ echo default0 >> a
1486 $ hg ci -Aqm0
1486 $ hg ci -Aqm0
1487 $ echo default1 >> a
1487 $ echo default1 >> a
1488 $ hg ci -m1
1488 $ hg ci -m1
1489
1489
1490 $ hg branch -q stable
1490 $ hg branch -q stable
1491 $ echo stable2 >> a
1491 $ echo stable2 >> a
1492 $ hg ci -m2
1492 $ hg ci -m2
1493 $ echo stable3 >> a
1493 $ echo stable3 >> a
1494 $ hg ci -m3
1494 $ hg ci -m3
1495
1495
1496 $ hg update -q null
1496 $ hg update -q null
1497 $ echo default4 >> a
1497 $ echo default4 >> a
1498 $ hg ci -Aqm4
1498 $ hg ci -Aqm4
1499 $ echo default5 >> a
1499 $ echo default5 >> a
1500 $ hg ci -m5
1500 $ hg ci -m5
1501
1501
1502 "null" revision belongs to "default" branch (issue4683)
1502 "null" revision belongs to "default" branch (issue4683)
1503
1503
1504 $ log 'branch(null)'
1504 $ log 'branch(null)'
1505 0
1505 0
1506 1
1506 1
1507 4
1507 4
1508 5
1508 5
1509
1509
1510 "null" revision belongs to "default" branch, but it shouldn't appear in set
1510 "null" revision belongs to "default" branch, but it shouldn't appear in set
1511 unless explicitly specified (issue4682)
1511 unless explicitly specified (issue4682)
1512
1512
1513 $ log 'children(branch(default))'
1513 $ log 'children(branch(default))'
1514 1
1514 1
1515 2
1515 2
1516 5
1516 5
1517
1517
1518 $ cd ..
1518 $ cd ..
1519
1519
1520 test author/desc/keyword in problematic encoding
1520 test author/desc/keyword in problematic encoding
1521 # unicode: cp932:
1521 # unicode: cp932:
1522 # u30A2 0x83 0x41(= 'A')
1522 # u30A2 0x83 0x41(= 'A')
1523 # u30C2 0x83 0x61(= 'a')
1523 # u30C2 0x83 0x61(= 'a')
1524
1524
1525 $ hg init problematicencoding
1525 $ hg init problematicencoding
1526 $ cd problematicencoding
1526 $ cd problematicencoding
1527
1527
1528 $ "$PYTHON" > setup.sh <<EOF
1528 $ "$PYTHON" <<EOF
1529 > print(u'''
1529 > open('setup.sh', 'wb').write(u'''
1530 > echo a > text
1530 > echo a > text
1531 > hg add text
1531 > hg add text
1532 > hg --encoding utf-8 commit -u '\u30A2' -m none
1532 > hg --encoding utf-8 commit -u '\u30A2' -m none
1533 > echo b > text
1533 > echo b > text
1534 > hg --encoding utf-8 commit -u '\u30C2' -m none
1534 > hg --encoding utf-8 commit -u '\u30C2' -m none
1535 > echo c > text
1535 > echo c > text
1536 > hg --encoding utf-8 commit -u none -m '\u30A2'
1536 > hg --encoding utf-8 commit -u none -m '\u30A2'
1537 > echo d > text
1537 > echo d > text
1538 > hg --encoding utf-8 commit -u none -m '\u30C2'
1538 > hg --encoding utf-8 commit -u none -m '\u30C2'
1539 > '''.encode('utf-8'))
1539 > '''.encode('utf-8'))
1540 > EOF
1540 > EOF
1541 $ sh < setup.sh
1541 $ sh < setup.sh
1542
1542
1543 test in problematic encoding
1543 test in problematic encoding
1544 $ "$PYTHON" > test.sh <<EOF
1544 $ "$PYTHON" <<EOF
1545 > print(u'''
1545 > open('test.sh', 'wb').write(u'''
1546 > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30A2)'
1546 > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30A2)'
1547 > echo ====
1547 > echo ====
1548 > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30C2)'
1548 > hg --encoding cp932 log --template '{rev}\\n' -r 'author(\u30C2)'
1549 > echo ====
1549 > echo ====
1550 > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30A2)'
1550 > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30A2)'
1551 > echo ====
1551 > echo ====
1552 > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30C2)'
1552 > hg --encoding cp932 log --template '{rev}\\n' -r 'desc(\u30C2)'
1553 > echo ====
1553 > echo ====
1554 > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30A2)'
1554 > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30A2)'
1555 > echo ====
1555 > echo ====
1556 > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30C2)'
1556 > hg --encoding cp932 log --template '{rev}\\n' -r 'keyword(\u30C2)'
1557 > '''.encode('cp932'))
1557 > '''.encode('cp932'))
1558 > EOF
1558 > EOF
1559 $ sh < test.sh
1559 $ sh < test.sh
1560 0
1560 0
1561 ====
1561 ====
1562 1
1562 1
1563 ====
1563 ====
1564 2
1564 2
1565 ====
1565 ====
1566 3
1566 3
1567 ====
1567 ====
1568 0
1568 0
1569 2
1569 2
1570 ====
1570 ====
1571 1
1571 1
1572 3
1572 3
1573
1573
1574 test error message of bad revset
1574 test error message of bad revset
1575 $ hg log -r 'foo\\'
1575 $ hg log -r 'foo\\'
1576 hg: parse error at 3: syntax error in revset 'foo\\'
1576 hg: parse error at 3: syntax error in revset 'foo\\'
1577 (foo\\
1577 (foo\\
1578 ^ here)
1578 ^ here)
1579 [255]
1579 [255]
1580
1580
1581 $ cd ..
1581 $ cd ..
1582
1582
1583 Test that revset predicate of extension isn't loaded at failure of
1583 Test that revset predicate of extension isn't loaded at failure of
1584 loading it
1584 loading it
1585
1585
1586 $ cd repo
1586 $ cd repo
1587
1587
1588 $ cat <<EOF > $TESTTMP/custompredicate.py
1588 $ cat <<EOF > $TESTTMP/custompredicate.py
1589 > from mercurial import error, registrar, revset
1589 > from mercurial import error, registrar, revset
1590 >
1590 >
1591 > revsetpredicate = registrar.revsetpredicate()
1591 > revsetpredicate = registrar.revsetpredicate()
1592 >
1592 >
1593 > @revsetpredicate(b'custom1()')
1593 > @revsetpredicate(b'custom1()')
1594 > def custom1(repo, subset, x):
1594 > def custom1(repo, subset, x):
1595 > return revset.baseset([1])
1595 > return revset.baseset([1])
1596 >
1596 >
1597 > raise error.Abort(b'intentional failure of loading extension')
1597 > raise error.Abort(b'intentional failure of loading extension')
1598 > EOF
1598 > EOF
1599 $ cat <<EOF > .hg/hgrc
1599 $ cat <<EOF > .hg/hgrc
1600 > [extensions]
1600 > [extensions]
1601 > custompredicate = $TESTTMP/custompredicate.py
1601 > custompredicate = $TESTTMP/custompredicate.py
1602 > EOF
1602 > EOF
1603
1603
1604 $ hg debugrevspec "custom1()"
1604 $ hg debugrevspec "custom1()"
1605 *** failed to import extension custompredicate from $TESTTMP/custompredicate.py: intentional failure of loading extension
1605 *** failed to import extension custompredicate from $TESTTMP/custompredicate.py: intentional failure of loading extension
1606 hg: parse error: unknown identifier: custom1
1606 hg: parse error: unknown identifier: custom1
1607 [255]
1607 [255]
1608
1608
1609 Test repo.anyrevs with customized revset overrides
1609 Test repo.anyrevs with customized revset overrides
1610
1610
1611 $ cat > $TESTTMP/printprevset.py <<EOF
1611 $ cat > $TESTTMP/printprevset.py <<EOF
1612 > from mercurial import encoding, registrar
1612 > from mercurial import encoding, registrar
1613 > cmdtable = {}
1613 > cmdtable = {}
1614 > command = registrar.command(cmdtable)
1614 > command = registrar.command(cmdtable)
1615 > @command(b'printprevset')
1615 > @command(b'printprevset')
1616 > def printprevset(ui, repo):
1616 > def printprevset(ui, repo):
1617 > alias = {}
1617 > alias = {}
1618 > p = encoding.environ.get(b'P')
1618 > p = encoding.environ.get(b'P')
1619 > if p:
1619 > if p:
1620 > alias[b'P'] = p
1620 > alias[b'P'] = p
1621 > revs = repo.anyrevs([b'P'], user=True, localalias=alias)
1621 > revs = repo.anyrevs([b'P'], user=True, localalias=alias)
1622 > ui.write(b'P=%r\n' % list(revs))
1622 > ui.write(b'P=%r\n' % list(revs))
1623 > EOF
1623 > EOF
1624
1624
1625 $ cat >> .hg/hgrc <<EOF
1625 $ cat >> .hg/hgrc <<EOF
1626 > custompredicate = !
1626 > custompredicate = !
1627 > printprevset = $TESTTMP/printprevset.py
1627 > printprevset = $TESTTMP/printprevset.py
1628 > EOF
1628 > EOF
1629
1629
1630 $ hg --config revsetalias.P=1 printprevset
1630 $ hg --config revsetalias.P=1 printprevset
1631 P=[1]
1631 P=[1]
1632 $ P=3 hg --config revsetalias.P=2 printprevset
1632 $ P=3 hg --config revsetalias.P=2 printprevset
1633 P=[3]
1633 P=[3]
1634
1634
1635 $ cd ..
1635 $ cd ..
1636
1636
1637 Test obsstore related revsets
1637 Test obsstore related revsets
1638
1638
1639 $ hg init repo1
1639 $ hg init repo1
1640 $ cd repo1
1640 $ cd repo1
1641 $ cat <<EOF >> .hg/hgrc
1641 $ cat <<EOF >> .hg/hgrc
1642 > [experimental]
1642 > [experimental]
1643 > evolution.createmarkers=True
1643 > evolution.createmarkers=True
1644 > EOF
1644 > EOF
1645
1645
1646 $ hg debugdrawdag <<'EOS'
1646 $ hg debugdrawdag <<'EOS'
1647 > F G
1647 > F G
1648 > |/ # split: B -> E, F
1648 > |/ # split: B -> E, F
1649 > B C D E # amend: B -> C -> D
1649 > B C D E # amend: B -> C -> D
1650 > \|/ | # amend: F -> G
1650 > \|/ | # amend: F -> G
1651 > A A Z # amend: A -> Z
1651 > A A Z # amend: A -> Z
1652 > EOS
1652 > EOS
1653 3 new orphan changesets
1653 3 new orphan changesets
1654 3 new content-divergent changesets
1654 3 new content-divergent changesets
1655
1655
1656 $ hg log -r 'successors(Z)' -T '{desc}\n'
1656 $ hg log -r 'successors(Z)' -T '{desc}\n'
1657 Z
1657 Z
1658
1658
1659 $ hg log -r 'successors(F)' -T '{desc}\n'
1659 $ hg log -r 'successors(F)' -T '{desc}\n'
1660 F
1660 F
1661 G
1661 G
1662
1662
1663 $ hg tag --remove --local C D E F G
1663 $ hg tag --remove --local C D E F G
1664
1664
1665 $ hg log -r 'successors(B)' -T '{desc}\n'
1665 $ hg log -r 'successors(B)' -T '{desc}\n'
1666 B
1666 B
1667 D
1667 D
1668 E
1668 E
1669 G
1669 G
1670
1670
1671 $ hg log -r 'successors(B)' -T '{desc}\n' --hidden
1671 $ hg log -r 'successors(B)' -T '{desc}\n' --hidden
1672 B
1672 B
1673 C
1673 C
1674 D
1674 D
1675 E
1675 E
1676 F
1676 F
1677 G
1677 G
1678
1678
1679 $ hg log -r 'successors(B)-obsolete()' -T '{desc}\n' --hidden
1679 $ hg log -r 'successors(B)-obsolete()' -T '{desc}\n' --hidden
1680 D
1680 D
1681 E
1681 E
1682 G
1682 G
1683
1683
1684 $ hg log -r 'successors(B+A)-contentdivergent()' -T '{desc}\n'
1684 $ hg log -r 'successors(B+A)-contentdivergent()' -T '{desc}\n'
1685 A
1685 A
1686 Z
1686 Z
1687 B
1687 B
1688
1688
1689 $ hg log -r 'successors(B+A)-contentdivergent()-obsolete()' -T '{desc}\n'
1689 $ hg log -r 'successors(B+A)-contentdivergent()-obsolete()' -T '{desc}\n'
1690 Z
1690 Z
1691
1691
1692 Test `draft() & ::x` optimization
1692 Test `draft() & ::x` optimization
1693
1693
1694 $ hg init $TESTTMP/repo2
1694 $ hg init $TESTTMP/repo2
1695 $ cd $TESTTMP/repo2
1695 $ cd $TESTTMP/repo2
1696 $ hg debugdrawdag <<'EOS'
1696 $ hg debugdrawdag <<'EOS'
1697 > P5 S1
1697 > P5 S1
1698 > | |
1698 > | |
1699 > S2 | D3
1699 > S2 | D3
1700 > \|/
1700 > \|/
1701 > P4
1701 > P4
1702 > |
1702 > |
1703 > P3 D2
1703 > P3 D2
1704 > | |
1704 > | |
1705 > P2 D1
1705 > P2 D1
1706 > |/
1706 > |/
1707 > P1
1707 > P1
1708 > |
1708 > |
1709 > P0
1709 > P0
1710 > EOS
1710 > EOS
1711 $ hg phase --public -r P5
1711 $ hg phase --public -r P5
1712 $ hg phase --force --secret -r S1+S2
1712 $ hg phase --force --secret -r S1+S2
1713 $ hg log -G -T '{rev} {desc} {phase}' -r 'sort(all(), topo, topo.firstbranch=P5)'
1713 $ hg log -G -T '{rev} {desc} {phase}' -r 'sort(all(), topo, topo.firstbranch=P5)'
1714 o 8 P5 public
1714 o 8 P5 public
1715 |
1715 |
1716 | o 10 S1 secret
1716 | o 10 S1 secret
1717 | |
1717 | |
1718 | o 7 D3 draft
1718 | o 7 D3 draft
1719 |/
1719 |/
1720 | o 9 S2 secret
1720 | o 9 S2 secret
1721 |/
1721 |/
1722 o 6 P4 public
1722 o 6 P4 public
1723 |
1723 |
1724 o 5 P3 public
1724 o 5 P3 public
1725 |
1725 |
1726 o 3 P2 public
1726 o 3 P2 public
1727 |
1727 |
1728 | o 4 D2 draft
1728 | o 4 D2 draft
1729 | |
1729 | |
1730 | o 2 D1 draft
1730 | o 2 D1 draft
1731 |/
1731 |/
1732 o 1 P1 public
1732 o 1 P1 public
1733 |
1733 |
1734 o 0 P0 public
1734 o 0 P0 public
1735
1735
1736 $ hg debugrevspec --verify -p analyzed -p optimized 'draft() & ::(((S1+D1+P5)-D3)+S2)'
1736 $ hg debugrevspec --verify -p analyzed -p optimized 'draft() & ::(((S1+D1+P5)-D3)+S2)'
1737 * analyzed:
1737 * analyzed:
1738 (and
1738 (and
1739 (func
1739 (func
1740 (symbol 'draft')
1740 (symbol 'draft')
1741 None)
1741 None)
1742 (func
1742 (func
1743 (symbol 'ancestors')
1743 (symbol 'ancestors')
1744 (or
1744 (or
1745 (list
1745 (list
1746 (and
1746 (and
1747 (or
1747 (or
1748 (list
1748 (list
1749 (symbol 'S1')
1749 (symbol 'S1')
1750 (symbol 'D1')
1750 (symbol 'D1')
1751 (symbol 'P5')))
1751 (symbol 'P5')))
1752 (not
1752 (not
1753 (symbol 'D3')))
1753 (symbol 'D3')))
1754 (symbol 'S2')))))
1754 (symbol 'S2')))))
1755 * optimized:
1755 * optimized:
1756 (func
1756 (func
1757 (symbol '_phaseandancestors')
1757 (symbol '_phaseandancestors')
1758 (list
1758 (list
1759 (symbol 'draft')
1759 (symbol 'draft')
1760 (or
1760 (or
1761 (list
1761 (list
1762 (difference
1762 (difference
1763 (func
1763 (func
1764 (symbol '_list')
1764 (symbol '_list')
1765 (string 'S1\x00D1\x00P5'))
1765 (string 'S1\x00D1\x00P5'))
1766 (symbol 'D3'))
1766 (symbol 'D3'))
1767 (symbol 'S2')))))
1767 (symbol 'S2')))))
1768 $ hg debugrevspec --verify -p analyzed -p optimized 'secret() & ::9'
1768 $ hg debugrevspec --verify -p analyzed -p optimized 'secret() & ::9'
1769 * analyzed:
1769 * analyzed:
1770 (and
1770 (and
1771 (func
1771 (func
1772 (symbol 'secret')
1772 (symbol 'secret')
1773 None)
1773 None)
1774 (func
1774 (func
1775 (symbol 'ancestors')
1775 (symbol 'ancestors')
1776 (symbol '9')))
1776 (symbol '9')))
1777 * optimized:
1777 * optimized:
1778 (func
1778 (func
1779 (symbol '_phaseandancestors')
1779 (symbol '_phaseandancestors')
1780 (list
1780 (list
1781 (symbol 'secret')
1781 (symbol 'secret')
1782 (symbol '9')))
1782 (symbol '9')))
1783 $ hg debugrevspec --verify -p analyzed -p optimized '7 & ( (not public()) & ::(tag()) )'
1783 $ hg debugrevspec --verify -p analyzed -p optimized '7 & ( (not public()) & ::(tag()) )'
1784 * analyzed:
1784 * analyzed:
1785 (and
1785 (and
1786 (symbol '7')
1786 (symbol '7')
1787 (and
1787 (and
1788 (not
1788 (not
1789 (func
1789 (func
1790 (symbol 'public')
1790 (symbol 'public')
1791 None))
1791 None))
1792 (func
1792 (func
1793 (symbol 'ancestors')
1793 (symbol 'ancestors')
1794 (func
1794 (func
1795 (symbol 'tag')
1795 (symbol 'tag')
1796 None))))
1796 None))))
1797 * optimized:
1797 * optimized:
1798 (and
1798 (and
1799 (symbol '7')
1799 (symbol '7')
1800 (func
1800 (func
1801 (symbol '_phaseandancestors')
1801 (symbol '_phaseandancestors')
1802 (list
1802 (list
1803 (symbol '_notpublic')
1803 (symbol '_notpublic')
1804 (func
1804 (func
1805 (symbol 'tag')
1805 (symbol 'tag')
1806 None))))
1806 None))))
1807 $ hg debugrevspec --verify -p optimized '(not public()) & ancestors(S1+D2+P5, 1)'
1807 $ hg debugrevspec --verify -p optimized '(not public()) & ancestors(S1+D2+P5, 1)'
1808 * optimized:
1808 * optimized:
1809 (and
1809 (and
1810 (func
1810 (func
1811 (symbol '_notpublic')
1811 (symbol '_notpublic')
1812 None)
1812 None)
1813 (func
1813 (func
1814 (symbol 'ancestors')
1814 (symbol 'ancestors')
1815 (list
1815 (list
1816 (func
1816 (func
1817 (symbol '_list')
1817 (symbol '_list')
1818 (string 'S1\x00D2\x00P5'))
1818 (string 'S1\x00D2\x00P5'))
1819 (symbol '1'))))
1819 (symbol '1'))))
1820 $ hg debugrevspec --verify -p optimized '(not public()) & ancestors(S1+D2+P5, depth=1)'
1820 $ hg debugrevspec --verify -p optimized '(not public()) & ancestors(S1+D2+P5, depth=1)'
1821 * optimized:
1821 * optimized:
1822 (and
1822 (and
1823 (func
1823 (func
1824 (symbol '_notpublic')
1824 (symbol '_notpublic')
1825 None)
1825 None)
1826 (func
1826 (func
1827 (symbol 'ancestors')
1827 (symbol 'ancestors')
1828 (list
1828 (list
1829 (func
1829 (func
1830 (symbol '_list')
1830 (symbol '_list')
1831 (string 'S1\x00D2\x00P5'))
1831 (string 'S1\x00D2\x00P5'))
1832 (keyvalue
1832 (keyvalue
1833 (symbol 'depth')
1833 (symbol 'depth')
1834 (symbol '1')))))
1834 (symbol '1')))))
1835
1835
1836 test commonancestors and its optimization
1836 test commonancestors and its optimization
1837
1837
1838 $ hg debugrevspec --verify -p analyzed -p optimized 'heads(commonancestors(head()))'
1838 $ hg debugrevspec --verify -p analyzed -p optimized 'heads(commonancestors(head()))'
1839 * analyzed:
1839 * analyzed:
1840 (func
1840 (func
1841 (symbol 'heads')
1841 (symbol 'heads')
1842 (func
1842 (func
1843 (symbol 'commonancestors')
1843 (symbol 'commonancestors')
1844 (func
1844 (func
1845 (symbol 'head')
1845 (symbol 'head')
1846 None)))
1846 None)))
1847 * optimized:
1847 * optimized:
1848 (func
1848 (func
1849 (symbol '_commonancestorheads')
1849 (symbol '_commonancestorheads')
1850 (func
1850 (func
1851 (symbol 'head')
1851 (symbol 'head')
1852 None))
1852 None))
General Comments 0
You need to be logged in to leave comments. Login now