##// END OF EJS Templates
help: fix a grammar/typo in hg help dates...
Sushil khanchi -
r46571:d010adc4 default
parent child Browse files
Show More
@@ -1,39 +1,39
1 Some commands allow the user to specify a date, e.g.:
1 Some commands allow the user to specify a date, e.g.:
2
2
3 - backout, commit, import, tag: Specify the commit date.
3 - backout, commit, import, tag: Specify the commit date.
4 - log, revert, update: Select revision(s) by date.
4 - log, revert, update: Select revision(s) by date.
5
5
6 Many date formats are valid. Here are some examples:
6 Many date formats are valid. Here are some examples:
7
7
8 - ``Wed Dec 6 13:18:29 2006`` (local timezone assumed)
8 - ``Wed Dec 6 13:18:29 2006`` (local timezone assumed)
9 - ``Dec 6 13:18 -0600`` (year assumed, time offset provided)
9 - ``Dec 6 13:18 -0600`` (year assumed, time offset provided)
10 - ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000)
10 - ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000)
11 - ``Dec 6`` (midnight)
11 - ``Dec 6`` (midnight)
12 - ``13:18`` (today assumed)
12 - ``13:18`` (today assumed)
13 - ``3:39`` (3:39AM assumed)
13 - ``3:39`` (3:39AM assumed)
14 - ``3:39pm`` (15:39)
14 - ``3:39pm`` (15:39)
15 - ``2006-12-06 13:18:29`` (ISO 8601 format)
15 - ``2006-12-06 13:18:29`` (ISO 8601 format)
16 - ``2006-12-6 13:18``
16 - ``2006-12-6 13:18``
17 - ``2006-12-6``
17 - ``2006-12-6``
18 - ``12-6``
18 - ``12-6``
19 - ``12/6``
19 - ``12/6``
20 - ``12/6/6`` (Dec 6 2006)
20 - ``12/6/6`` (Dec 6 2006)
21 - ``today`` (midnight)
21 - ``today`` (midnight)
22 - ``yesterday`` (midnight)
22 - ``yesterday`` (midnight)
23 - ``now`` - right now
23 - ``now`` - right now
24
24
25 Lastly, there is Mercurial's internal format:
25 Lastly, there is Mercurial's internal format:
26
26
27 - ``1165411109 0`` (Wed Dec 6 13:18:29 2006 UTC)
27 - ``1165411109 0`` (Wed Dec 6 13:18:29 2006 UTC)
28
28
29 This is the internal representation format for dates. The first number
29 This is the internal representation format for dates. The first number
30 is the number of seconds since the epoch (1970-01-01 00:00 UTC). The
30 is the number of seconds since the epoch (1970-01-01 00:00 UTC). The
31 second is the offset of the local timezone, in seconds west of UTC
31 second is the offset of the local timezone, in seconds west of UTC
32 (negative if the timezone is east of UTC).
32 (negative if the timezone is east of UTC).
33
33
34 The log command also accepts date ranges:
34 The log command also accepts date ranges:
35
35
36 - ``<DATE`` - at or before a given date/time
36 - ``<DATE`` - at or before a given date/time
37 - ``>DATE`` - on or after a given date/time
37 - ``>DATE`` - on or after a given date/time
38 - ``DATE to DATE`` - a date range, inclusive
38 - ``DATE to DATE`` - a date range, inclusive
39 - ``-DAYS`` - within a given number of days of today
39 - ``-DAYS`` - within a given number of days from today
@@ -1,3919 +1,3919
1 Short help:
1 Short help:
2
2
3 $ hg
3 $ hg
4 Mercurial Distributed SCM
4 Mercurial Distributed SCM
5
5
6 basic commands:
6 basic commands:
7
7
8 add add the specified files on the next commit
8 add add the specified files on the next commit
9 annotate show changeset information by line for each file
9 annotate show changeset information by line for each file
10 clone make a copy of an existing repository
10 clone make a copy of an existing repository
11 commit commit the specified files or all outstanding changes
11 commit commit the specified files or all outstanding changes
12 diff diff repository (or selected files)
12 diff diff repository (or selected files)
13 export dump the header and diffs for one or more changesets
13 export dump the header and diffs for one or more changesets
14 forget forget the specified files on the next commit
14 forget forget the specified files on the next commit
15 init create a new repository in the given directory
15 init create a new repository in the given directory
16 log show revision history of entire repository or files
16 log show revision history of entire repository or files
17 merge merge another revision into working directory
17 merge merge another revision into working directory
18 pull pull changes from the specified source
18 pull pull changes from the specified source
19 push push changes to the specified destination
19 push push changes to the specified destination
20 remove remove the specified files on the next commit
20 remove remove the specified files on the next commit
21 serve start stand-alone webserver
21 serve start stand-alone webserver
22 status show changed files in the working directory
22 status show changed files in the working directory
23 summary summarize working directory state
23 summary summarize working directory state
24 update update working directory (or switch revisions)
24 update update working directory (or switch revisions)
25
25
26 (use 'hg help' for the full list of commands or 'hg -v' for details)
26 (use 'hg help' for the full list of commands or 'hg -v' for details)
27
27
28 $ hg -q
28 $ hg -q
29 add add the specified files on the next commit
29 add add the specified files on the next commit
30 annotate show changeset information by line for each file
30 annotate show changeset information by line for each file
31 clone make a copy of an existing repository
31 clone make a copy of an existing repository
32 commit commit the specified files or all outstanding changes
32 commit commit the specified files or all outstanding changes
33 diff diff repository (or selected files)
33 diff diff repository (or selected files)
34 export dump the header and diffs for one or more changesets
34 export dump the header and diffs for one or more changesets
35 forget forget the specified files on the next commit
35 forget forget the specified files on the next commit
36 init create a new repository in the given directory
36 init create a new repository in the given directory
37 log show revision history of entire repository or files
37 log show revision history of entire repository or files
38 merge merge another revision into working directory
38 merge merge another revision into working directory
39 pull pull changes from the specified source
39 pull pull changes from the specified source
40 push push changes to the specified destination
40 push push changes to the specified destination
41 remove remove the specified files on the next commit
41 remove remove the specified files on the next commit
42 serve start stand-alone webserver
42 serve start stand-alone webserver
43 status show changed files in the working directory
43 status show changed files in the working directory
44 summary summarize working directory state
44 summary summarize working directory state
45 update update working directory (or switch revisions)
45 update update working directory (or switch revisions)
46
46
47 Extra extensions will be printed in help output in a non-reliable order since
47 Extra extensions will be printed in help output in a non-reliable order since
48 the extension is unknown.
48 the extension is unknown.
49 #if no-extraextensions
49 #if no-extraextensions
50
50
51 $ hg help
51 $ hg help
52 Mercurial Distributed SCM
52 Mercurial Distributed SCM
53
53
54 list of commands:
54 list of commands:
55
55
56 Repository creation:
56 Repository creation:
57
57
58 clone make a copy of an existing repository
58 clone make a copy of an existing repository
59 init create a new repository in the given directory
59 init create a new repository in the given directory
60
60
61 Remote repository management:
61 Remote repository management:
62
62
63 incoming show new changesets found in source
63 incoming show new changesets found in source
64 outgoing show changesets not found in the destination
64 outgoing show changesets not found in the destination
65 paths show aliases for remote repositories
65 paths show aliases for remote repositories
66 pull pull changes from the specified source
66 pull pull changes from the specified source
67 push push changes to the specified destination
67 push push changes to the specified destination
68 serve start stand-alone webserver
68 serve start stand-alone webserver
69
69
70 Change creation:
70 Change creation:
71
71
72 commit commit the specified files or all outstanding changes
72 commit commit the specified files or all outstanding changes
73
73
74 Change manipulation:
74 Change manipulation:
75
75
76 backout reverse effect of earlier changeset
76 backout reverse effect of earlier changeset
77 graft copy changes from other branches onto the current branch
77 graft copy changes from other branches onto the current branch
78 merge merge another revision into working directory
78 merge merge another revision into working directory
79
79
80 Change organization:
80 Change organization:
81
81
82 bookmarks create a new bookmark or list existing bookmarks
82 bookmarks create a new bookmark or list existing bookmarks
83 branch set or show the current branch name
83 branch set or show the current branch name
84 branches list repository named branches
84 branches list repository named branches
85 phase set or show the current phase name
85 phase set or show the current phase name
86 tag add one or more tags for the current or given revision
86 tag add one or more tags for the current or given revision
87 tags list repository tags
87 tags list repository tags
88
88
89 File content management:
89 File content management:
90
90
91 annotate show changeset information by line for each file
91 annotate show changeset information by line for each file
92 cat output the current or given revision of files
92 cat output the current or given revision of files
93 copy mark files as copied for the next commit
93 copy mark files as copied for the next commit
94 diff diff repository (or selected files)
94 diff diff repository (or selected files)
95 grep search for a pattern in specified files
95 grep search for a pattern in specified files
96
96
97 Change navigation:
97 Change navigation:
98
98
99 bisect subdivision search of changesets
99 bisect subdivision search of changesets
100 heads show branch heads
100 heads show branch heads
101 identify identify the working directory or specified revision
101 identify identify the working directory or specified revision
102 log show revision history of entire repository or files
102 log show revision history of entire repository or files
103
103
104 Working directory management:
104 Working directory management:
105
105
106 add add the specified files on the next commit
106 add add the specified files on the next commit
107 addremove add all new files, delete all missing files
107 addremove add all new files, delete all missing files
108 files list tracked files
108 files list tracked files
109 forget forget the specified files on the next commit
109 forget forget the specified files on the next commit
110 remove remove the specified files on the next commit
110 remove remove the specified files on the next commit
111 rename rename files; equivalent of copy + remove
111 rename rename files; equivalent of copy + remove
112 resolve redo merges or set/view the merge status of files
112 resolve redo merges or set/view the merge status of files
113 revert restore files to their checkout state
113 revert restore files to their checkout state
114 root print the root (top) of the current working directory
114 root print the root (top) of the current working directory
115 shelve save and set aside changes from the working directory
115 shelve save and set aside changes from the working directory
116 status show changed files in the working directory
116 status show changed files in the working directory
117 summary summarize working directory state
117 summary summarize working directory state
118 unshelve restore a shelved change to the working directory
118 unshelve restore a shelved change to the working directory
119 update update working directory (or switch revisions)
119 update update working directory (or switch revisions)
120
120
121 Change import/export:
121 Change import/export:
122
122
123 archive create an unversioned archive of a repository revision
123 archive create an unversioned archive of a repository revision
124 bundle create a bundle file
124 bundle create a bundle file
125 export dump the header and diffs for one or more changesets
125 export dump the header and diffs for one or more changesets
126 import import an ordered set of patches
126 import import an ordered set of patches
127 unbundle apply one or more bundle files
127 unbundle apply one or more bundle files
128
128
129 Repository maintenance:
129 Repository maintenance:
130
130
131 manifest output the current or given revision of the project manifest
131 manifest output the current or given revision of the project manifest
132 recover roll back an interrupted transaction
132 recover roll back an interrupted transaction
133 verify verify the integrity of the repository
133 verify verify the integrity of the repository
134
134
135 Help:
135 Help:
136
136
137 config show combined config settings from all hgrc files
137 config show combined config settings from all hgrc files
138 help show help for a given topic or a help overview
138 help show help for a given topic or a help overview
139 version output version and copyright information
139 version output version and copyright information
140
140
141 additional help topics:
141 additional help topics:
142
142
143 Mercurial identifiers:
143 Mercurial identifiers:
144
144
145 filesets Specifying File Sets
145 filesets Specifying File Sets
146 hgignore Syntax for Mercurial Ignore Files
146 hgignore Syntax for Mercurial Ignore Files
147 patterns File Name Patterns
147 patterns File Name Patterns
148 revisions Specifying Revisions
148 revisions Specifying Revisions
149 urls URL Paths
149 urls URL Paths
150
150
151 Mercurial output:
151 Mercurial output:
152
152
153 color Colorizing Outputs
153 color Colorizing Outputs
154 dates Date Formats
154 dates Date Formats
155 diffs Diff Formats
155 diffs Diff Formats
156 templating Template Usage
156 templating Template Usage
157
157
158 Mercurial configuration:
158 Mercurial configuration:
159
159
160 config Configuration Files
160 config Configuration Files
161 environment Environment Variables
161 environment Environment Variables
162 extensions Using Additional Features
162 extensions Using Additional Features
163 flags Command-line flags
163 flags Command-line flags
164 hgweb Configuring hgweb
164 hgweb Configuring hgweb
165 merge-tools Merge Tools
165 merge-tools Merge Tools
166 pager Pager Support
166 pager Pager Support
167
167
168 Concepts:
168 Concepts:
169
169
170 bundlespec Bundle File Formats
170 bundlespec Bundle File Formats
171 glossary Glossary
171 glossary Glossary
172 phases Working with Phases
172 phases Working with Phases
173 subrepos Subrepositories
173 subrepos Subrepositories
174
174
175 Miscellaneous:
175 Miscellaneous:
176
176
177 deprecated Deprecated Features
177 deprecated Deprecated Features
178 internals Technical implementation topics
178 internals Technical implementation topics
179 scripting Using Mercurial from scripts and automation
179 scripting Using Mercurial from scripts and automation
180
180
181 (use 'hg help -v' to show built-in aliases and global options)
181 (use 'hg help -v' to show built-in aliases and global options)
182
182
183 $ hg -q help
183 $ hg -q help
184 Repository creation:
184 Repository creation:
185
185
186 clone make a copy of an existing repository
186 clone make a copy of an existing repository
187 init create a new repository in the given directory
187 init create a new repository in the given directory
188
188
189 Remote repository management:
189 Remote repository management:
190
190
191 incoming show new changesets found in source
191 incoming show new changesets found in source
192 outgoing show changesets not found in the destination
192 outgoing show changesets not found in the destination
193 paths show aliases for remote repositories
193 paths show aliases for remote repositories
194 pull pull changes from the specified source
194 pull pull changes from the specified source
195 push push changes to the specified destination
195 push push changes to the specified destination
196 serve start stand-alone webserver
196 serve start stand-alone webserver
197
197
198 Change creation:
198 Change creation:
199
199
200 commit commit the specified files or all outstanding changes
200 commit commit the specified files or all outstanding changes
201
201
202 Change manipulation:
202 Change manipulation:
203
203
204 backout reverse effect of earlier changeset
204 backout reverse effect of earlier changeset
205 graft copy changes from other branches onto the current branch
205 graft copy changes from other branches onto the current branch
206 merge merge another revision into working directory
206 merge merge another revision into working directory
207
207
208 Change organization:
208 Change organization:
209
209
210 bookmarks create a new bookmark or list existing bookmarks
210 bookmarks create a new bookmark or list existing bookmarks
211 branch set or show the current branch name
211 branch set or show the current branch name
212 branches list repository named branches
212 branches list repository named branches
213 phase set or show the current phase name
213 phase set or show the current phase name
214 tag add one or more tags for the current or given revision
214 tag add one or more tags for the current or given revision
215 tags list repository tags
215 tags list repository tags
216
216
217 File content management:
217 File content management:
218
218
219 annotate show changeset information by line for each file
219 annotate show changeset information by line for each file
220 cat output the current or given revision of files
220 cat output the current or given revision of files
221 copy mark files as copied for the next commit
221 copy mark files as copied for the next commit
222 diff diff repository (or selected files)
222 diff diff repository (or selected files)
223 grep search for a pattern in specified files
223 grep search for a pattern in specified files
224
224
225 Change navigation:
225 Change navigation:
226
226
227 bisect subdivision search of changesets
227 bisect subdivision search of changesets
228 heads show branch heads
228 heads show branch heads
229 identify identify the working directory or specified revision
229 identify identify the working directory or specified revision
230 log show revision history of entire repository or files
230 log show revision history of entire repository or files
231
231
232 Working directory management:
232 Working directory management:
233
233
234 add add the specified files on the next commit
234 add add the specified files on the next commit
235 addremove add all new files, delete all missing files
235 addremove add all new files, delete all missing files
236 files list tracked files
236 files list tracked files
237 forget forget the specified files on the next commit
237 forget forget the specified files on the next commit
238 remove remove the specified files on the next commit
238 remove remove the specified files on the next commit
239 rename rename files; equivalent of copy + remove
239 rename rename files; equivalent of copy + remove
240 resolve redo merges or set/view the merge status of files
240 resolve redo merges or set/view the merge status of files
241 revert restore files to their checkout state
241 revert restore files to their checkout state
242 root print the root (top) of the current working directory
242 root print the root (top) of the current working directory
243 shelve save and set aside changes from the working directory
243 shelve save and set aside changes from the working directory
244 status show changed files in the working directory
244 status show changed files in the working directory
245 summary summarize working directory state
245 summary summarize working directory state
246 unshelve restore a shelved change to the working directory
246 unshelve restore a shelved change to the working directory
247 update update working directory (or switch revisions)
247 update update working directory (or switch revisions)
248
248
249 Change import/export:
249 Change import/export:
250
250
251 archive create an unversioned archive of a repository revision
251 archive create an unversioned archive of a repository revision
252 bundle create a bundle file
252 bundle create a bundle file
253 export dump the header and diffs for one or more changesets
253 export dump the header and diffs for one or more changesets
254 import import an ordered set of patches
254 import import an ordered set of patches
255 unbundle apply one or more bundle files
255 unbundle apply one or more bundle files
256
256
257 Repository maintenance:
257 Repository maintenance:
258
258
259 manifest output the current or given revision of the project manifest
259 manifest output the current or given revision of the project manifest
260 recover roll back an interrupted transaction
260 recover roll back an interrupted transaction
261 verify verify the integrity of the repository
261 verify verify the integrity of the repository
262
262
263 Help:
263 Help:
264
264
265 config show combined config settings from all hgrc files
265 config show combined config settings from all hgrc files
266 help show help for a given topic or a help overview
266 help show help for a given topic or a help overview
267 version output version and copyright information
267 version output version and copyright information
268
268
269 additional help topics:
269 additional help topics:
270
270
271 Mercurial identifiers:
271 Mercurial identifiers:
272
272
273 filesets Specifying File Sets
273 filesets Specifying File Sets
274 hgignore Syntax for Mercurial Ignore Files
274 hgignore Syntax for Mercurial Ignore Files
275 patterns File Name Patterns
275 patterns File Name Patterns
276 revisions Specifying Revisions
276 revisions Specifying Revisions
277 urls URL Paths
277 urls URL Paths
278
278
279 Mercurial output:
279 Mercurial output:
280
280
281 color Colorizing Outputs
281 color Colorizing Outputs
282 dates Date Formats
282 dates Date Formats
283 diffs Diff Formats
283 diffs Diff Formats
284 templating Template Usage
284 templating Template Usage
285
285
286 Mercurial configuration:
286 Mercurial configuration:
287
287
288 config Configuration Files
288 config Configuration Files
289 environment Environment Variables
289 environment Environment Variables
290 extensions Using Additional Features
290 extensions Using Additional Features
291 flags Command-line flags
291 flags Command-line flags
292 hgweb Configuring hgweb
292 hgweb Configuring hgweb
293 merge-tools Merge Tools
293 merge-tools Merge Tools
294 pager Pager Support
294 pager Pager Support
295
295
296 Concepts:
296 Concepts:
297
297
298 bundlespec Bundle File Formats
298 bundlespec Bundle File Formats
299 glossary Glossary
299 glossary Glossary
300 phases Working with Phases
300 phases Working with Phases
301 subrepos Subrepositories
301 subrepos Subrepositories
302
302
303 Miscellaneous:
303 Miscellaneous:
304
304
305 deprecated Deprecated Features
305 deprecated Deprecated Features
306 internals Technical implementation topics
306 internals Technical implementation topics
307 scripting Using Mercurial from scripts and automation
307 scripting Using Mercurial from scripts and automation
308
308
309 Test extension help:
309 Test extension help:
310 $ hg help extensions --config extensions.rebase= --config extensions.children=
310 $ hg help extensions --config extensions.rebase= --config extensions.children=
311 Using Additional Features
311 Using Additional Features
312 """""""""""""""""""""""""
312 """""""""""""""""""""""""
313
313
314 Mercurial has the ability to add new features through the use of
314 Mercurial has the ability to add new features through the use of
315 extensions. Extensions may add new commands, add options to existing
315 extensions. Extensions may add new commands, add options to existing
316 commands, change the default behavior of commands, or implement hooks.
316 commands, change the default behavior of commands, or implement hooks.
317
317
318 To enable the "foo" extension, either shipped with Mercurial or in the
318 To enable the "foo" extension, either shipped with Mercurial or in the
319 Python search path, create an entry for it in your configuration file,
319 Python search path, create an entry for it in your configuration file,
320 like this:
320 like this:
321
321
322 [extensions]
322 [extensions]
323 foo =
323 foo =
324
324
325 You may also specify the full path to an extension:
325 You may also specify the full path to an extension:
326
326
327 [extensions]
327 [extensions]
328 myfeature = ~/.hgext/myfeature.py
328 myfeature = ~/.hgext/myfeature.py
329
329
330 See 'hg help config' for more information on configuration files.
330 See 'hg help config' for more information on configuration files.
331
331
332 Extensions are not loaded by default for a variety of reasons: they can
332 Extensions are not loaded by default for a variety of reasons: they can
333 increase startup overhead; they may be meant for advanced usage only; they
333 increase startup overhead; they may be meant for advanced usage only; they
334 may provide potentially dangerous abilities (such as letting you destroy
334 may provide potentially dangerous abilities (such as letting you destroy
335 or modify history); they might not be ready for prime time; or they may
335 or modify history); they might not be ready for prime time; or they may
336 alter some usual behaviors of stock Mercurial. It is thus up to the user
336 alter some usual behaviors of stock Mercurial. It is thus up to the user
337 to activate extensions as needed.
337 to activate extensions as needed.
338
338
339 To explicitly disable an extension enabled in a configuration file of
339 To explicitly disable an extension enabled in a configuration file of
340 broader scope, prepend its path with !:
340 broader scope, prepend its path with !:
341
341
342 [extensions]
342 [extensions]
343 # disabling extension bar residing in /path/to/extension/bar.py
343 # disabling extension bar residing in /path/to/extension/bar.py
344 bar = !/path/to/extension/bar.py
344 bar = !/path/to/extension/bar.py
345 # ditto, but no path was supplied for extension baz
345 # ditto, but no path was supplied for extension baz
346 baz = !
346 baz = !
347
347
348 enabled extensions:
348 enabled extensions:
349
349
350 children command to display child changesets (DEPRECATED)
350 children command to display child changesets (DEPRECATED)
351 rebase command to move sets of revisions to a different ancestor
351 rebase command to move sets of revisions to a different ancestor
352
352
353 disabled extensions:
353 disabled extensions:
354
354
355 acl hooks for controlling repository access
355 acl hooks for controlling repository access
356 blackbox log repository events to a blackbox for debugging
356 blackbox log repository events to a blackbox for debugging
357 bugzilla hooks for integrating with the Bugzilla bug tracker
357 bugzilla hooks for integrating with the Bugzilla bug tracker
358 censor erase file content at a given revision
358 censor erase file content at a given revision
359 churn command to display statistics about repository history
359 churn command to display statistics about repository history
360 clonebundles advertise pre-generated bundles to seed clones
360 clonebundles advertise pre-generated bundles to seed clones
361 closehead close arbitrary heads without checking them out first
361 closehead close arbitrary heads without checking them out first
362 convert import revisions from foreign VCS repositories into
362 convert import revisions from foreign VCS repositories into
363 Mercurial
363 Mercurial
364 eol automatically manage newlines in repository files
364 eol automatically manage newlines in repository files
365 extdiff command to allow external programs to compare revisions
365 extdiff command to allow external programs to compare revisions
366 factotum http authentication with factotum
366 factotum http authentication with factotum
367 fastexport export repositories as git fast-import stream
367 fastexport export repositories as git fast-import stream
368 githelp try mapping git commands to Mercurial commands
368 githelp try mapping git commands to Mercurial commands
369 gpg commands to sign and verify changesets
369 gpg commands to sign and verify changesets
370 hgk browse the repository in a graphical way
370 hgk browse the repository in a graphical way
371 highlight syntax highlighting for hgweb (requires Pygments)
371 highlight syntax highlighting for hgweb (requires Pygments)
372 histedit interactive history editing
372 histedit interactive history editing
373 keyword expand keywords in tracked files
373 keyword expand keywords in tracked files
374 largefiles track large binary files
374 largefiles track large binary files
375 mq manage a stack of patches
375 mq manage a stack of patches
376 notify hooks for sending email push notifications
376 notify hooks for sending email push notifications
377 patchbomb command to send changesets as (a series of) patch emails
377 patchbomb command to send changesets as (a series of) patch emails
378 purge command to delete untracked files from the working
378 purge command to delete untracked files from the working
379 directory
379 directory
380 relink recreates hardlinks between repository clones
380 relink recreates hardlinks between repository clones
381 schemes extend schemes with shortcuts to repository swarms
381 schemes extend schemes with shortcuts to repository swarms
382 share share a common history between several working directories
382 share share a common history between several working directories
383 transplant command to transplant changesets from another branch
383 transplant command to transplant changesets from another branch
384 win32mbcs allow the use of MBCS paths with problematic encodings
384 win32mbcs allow the use of MBCS paths with problematic encodings
385 zeroconf discover and advertise repositories on the local network
385 zeroconf discover and advertise repositories on the local network
386
386
387 #endif
387 #endif
388
388
389 Verify that deprecated extensions are included if --verbose:
389 Verify that deprecated extensions are included if --verbose:
390
390
391 $ hg -v help extensions | grep children
391 $ hg -v help extensions | grep children
392 children command to display child changesets (DEPRECATED)
392 children command to display child changesets (DEPRECATED)
393
393
394 Verify that extension keywords appear in help templates
394 Verify that extension keywords appear in help templates
395
395
396 $ hg help --config extensions.transplant= templating|grep transplant > /dev/null
396 $ hg help --config extensions.transplant= templating|grep transplant > /dev/null
397
397
398 Test short command list with verbose option
398 Test short command list with verbose option
399
399
400 $ hg -v help shortlist
400 $ hg -v help shortlist
401 Mercurial Distributed SCM
401 Mercurial Distributed SCM
402
402
403 basic commands:
403 basic commands:
404
404
405 abort abort an unfinished operation (EXPERIMENTAL)
405 abort abort an unfinished operation (EXPERIMENTAL)
406 add add the specified files on the next commit
406 add add the specified files on the next commit
407 annotate, blame
407 annotate, blame
408 show changeset information by line for each file
408 show changeset information by line for each file
409 clone make a copy of an existing repository
409 clone make a copy of an existing repository
410 commit, ci commit the specified files or all outstanding changes
410 commit, ci commit the specified files or all outstanding changes
411 continue resumes an interrupted operation (EXPERIMENTAL)
411 continue resumes an interrupted operation (EXPERIMENTAL)
412 diff diff repository (or selected files)
412 diff diff repository (or selected files)
413 export dump the header and diffs for one or more changesets
413 export dump the header and diffs for one or more changesets
414 forget forget the specified files on the next commit
414 forget forget the specified files on the next commit
415 init create a new repository in the given directory
415 init create a new repository in the given directory
416 log, history show revision history of entire repository or files
416 log, history show revision history of entire repository or files
417 merge merge another revision into working directory
417 merge merge another revision into working directory
418 pull pull changes from the specified source
418 pull pull changes from the specified source
419 push push changes to the specified destination
419 push push changes to the specified destination
420 remove, rm remove the specified files on the next commit
420 remove, rm remove the specified files on the next commit
421 serve start stand-alone webserver
421 serve start stand-alone webserver
422 status, st show changed files in the working directory
422 status, st show changed files in the working directory
423 summary, sum summarize working directory state
423 summary, sum summarize working directory state
424 update, up, checkout, co
424 update, up, checkout, co
425 update working directory (or switch revisions)
425 update working directory (or switch revisions)
426
426
427 global options ([+] can be repeated):
427 global options ([+] can be repeated):
428
428
429 -R --repository REPO repository root directory or name of overlay bundle
429 -R --repository REPO repository root directory or name of overlay bundle
430 file
430 file
431 --cwd DIR change working directory
431 --cwd DIR change working directory
432 -y --noninteractive do not prompt, automatically pick the first choice for
432 -y --noninteractive do not prompt, automatically pick the first choice for
433 all prompts
433 all prompts
434 -q --quiet suppress output
434 -q --quiet suppress output
435 -v --verbose enable additional output
435 -v --verbose enable additional output
436 --color TYPE when to colorize (boolean, always, auto, never, or
436 --color TYPE when to colorize (boolean, always, auto, never, or
437 debug)
437 debug)
438 --config CONFIG [+] set/override config option (use 'section.name=value')
438 --config CONFIG [+] set/override config option (use 'section.name=value')
439 --debug enable debugging output
439 --debug enable debugging output
440 --debugger start debugger
440 --debugger start debugger
441 --encoding ENCODE set the charset encoding (default: ascii)
441 --encoding ENCODE set the charset encoding (default: ascii)
442 --encodingmode MODE set the charset encoding mode (default: strict)
442 --encodingmode MODE set the charset encoding mode (default: strict)
443 --traceback always print a traceback on exception
443 --traceback always print a traceback on exception
444 --time time how long the command takes
444 --time time how long the command takes
445 --profile print command execution profile
445 --profile print command execution profile
446 --version output version information and exit
446 --version output version information and exit
447 -h --help display help and exit
447 -h --help display help and exit
448 --hidden consider hidden changesets
448 --hidden consider hidden changesets
449 --pager TYPE when to paginate (boolean, always, auto, or never)
449 --pager TYPE when to paginate (boolean, always, auto, or never)
450 (default: auto)
450 (default: auto)
451
451
452 (use 'hg help' for the full list of commands)
452 (use 'hg help' for the full list of commands)
453
453
454 $ hg add -h
454 $ hg add -h
455 hg add [OPTION]... [FILE]...
455 hg add [OPTION]... [FILE]...
456
456
457 add the specified files on the next commit
457 add the specified files on the next commit
458
458
459 Schedule files to be version controlled and added to the repository.
459 Schedule files to be version controlled and added to the repository.
460
460
461 The files will be added to the repository at the next commit. To undo an
461 The files will be added to the repository at the next commit. To undo an
462 add before that, see 'hg forget'.
462 add before that, see 'hg forget'.
463
463
464 If no names are given, add all files to the repository (except files
464 If no names are given, add all files to the repository (except files
465 matching ".hgignore").
465 matching ".hgignore").
466
466
467 Returns 0 if all files are successfully added.
467 Returns 0 if all files are successfully added.
468
468
469 options ([+] can be repeated):
469 options ([+] can be repeated):
470
470
471 -I --include PATTERN [+] include names matching the given patterns
471 -I --include PATTERN [+] include names matching the given patterns
472 -X --exclude PATTERN [+] exclude names matching the given patterns
472 -X --exclude PATTERN [+] exclude names matching the given patterns
473 -S --subrepos recurse into subrepositories
473 -S --subrepos recurse into subrepositories
474 -n --dry-run do not perform actions, just print output
474 -n --dry-run do not perform actions, just print output
475
475
476 (some details hidden, use --verbose to show complete help)
476 (some details hidden, use --verbose to show complete help)
477
477
478 Verbose help for add
478 Verbose help for add
479
479
480 $ hg add -hv
480 $ hg add -hv
481 hg add [OPTION]... [FILE]...
481 hg add [OPTION]... [FILE]...
482
482
483 add the specified files on the next commit
483 add the specified files on the next commit
484
484
485 Schedule files to be version controlled and added to the repository.
485 Schedule files to be version controlled and added to the repository.
486
486
487 The files will be added to the repository at the next commit. To undo an
487 The files will be added to the repository at the next commit. To undo an
488 add before that, see 'hg forget'.
488 add before that, see 'hg forget'.
489
489
490 If no names are given, add all files to the repository (except files
490 If no names are given, add all files to the repository (except files
491 matching ".hgignore").
491 matching ".hgignore").
492
492
493 Examples:
493 Examples:
494
494
495 - New (unknown) files are added automatically by 'hg add':
495 - New (unknown) files are added automatically by 'hg add':
496
496
497 $ ls
497 $ ls
498 foo.c
498 foo.c
499 $ hg status
499 $ hg status
500 ? foo.c
500 ? foo.c
501 $ hg add
501 $ hg add
502 adding foo.c
502 adding foo.c
503 $ hg status
503 $ hg status
504 A foo.c
504 A foo.c
505
505
506 - Specific files to be added can be specified:
506 - Specific files to be added can be specified:
507
507
508 $ ls
508 $ ls
509 bar.c foo.c
509 bar.c foo.c
510 $ hg status
510 $ hg status
511 ? bar.c
511 ? bar.c
512 ? foo.c
512 ? foo.c
513 $ hg add bar.c
513 $ hg add bar.c
514 $ hg status
514 $ hg status
515 A bar.c
515 A bar.c
516 ? foo.c
516 ? foo.c
517
517
518 Returns 0 if all files are successfully added.
518 Returns 0 if all files are successfully added.
519
519
520 options ([+] can be repeated):
520 options ([+] can be repeated):
521
521
522 -I --include PATTERN [+] include names matching the given patterns
522 -I --include PATTERN [+] include names matching the given patterns
523 -X --exclude PATTERN [+] exclude names matching the given patterns
523 -X --exclude PATTERN [+] exclude names matching the given patterns
524 -S --subrepos recurse into subrepositories
524 -S --subrepos recurse into subrepositories
525 -n --dry-run do not perform actions, just print output
525 -n --dry-run do not perform actions, just print output
526
526
527 global options ([+] can be repeated):
527 global options ([+] can be repeated):
528
528
529 -R --repository REPO repository root directory or name of overlay bundle
529 -R --repository REPO repository root directory or name of overlay bundle
530 file
530 file
531 --cwd DIR change working directory
531 --cwd DIR change working directory
532 -y --noninteractive do not prompt, automatically pick the first choice for
532 -y --noninteractive do not prompt, automatically pick the first choice for
533 all prompts
533 all prompts
534 -q --quiet suppress output
534 -q --quiet suppress output
535 -v --verbose enable additional output
535 -v --verbose enable additional output
536 --color TYPE when to colorize (boolean, always, auto, never, or
536 --color TYPE when to colorize (boolean, always, auto, never, or
537 debug)
537 debug)
538 --config CONFIG [+] set/override config option (use 'section.name=value')
538 --config CONFIG [+] set/override config option (use 'section.name=value')
539 --debug enable debugging output
539 --debug enable debugging output
540 --debugger start debugger
540 --debugger start debugger
541 --encoding ENCODE set the charset encoding (default: ascii)
541 --encoding ENCODE set the charset encoding (default: ascii)
542 --encodingmode MODE set the charset encoding mode (default: strict)
542 --encodingmode MODE set the charset encoding mode (default: strict)
543 --traceback always print a traceback on exception
543 --traceback always print a traceback on exception
544 --time time how long the command takes
544 --time time how long the command takes
545 --profile print command execution profile
545 --profile print command execution profile
546 --version output version information and exit
546 --version output version information and exit
547 -h --help display help and exit
547 -h --help display help and exit
548 --hidden consider hidden changesets
548 --hidden consider hidden changesets
549 --pager TYPE when to paginate (boolean, always, auto, or never)
549 --pager TYPE when to paginate (boolean, always, auto, or never)
550 (default: auto)
550 (default: auto)
551
551
552 Test the textwidth config option
552 Test the textwidth config option
553
553
554 $ hg root -h --config ui.textwidth=50
554 $ hg root -h --config ui.textwidth=50
555 hg root
555 hg root
556
556
557 print the root (top) of the current working
557 print the root (top) of the current working
558 directory
558 directory
559
559
560 Print the root directory of the current
560 Print the root directory of the current
561 repository.
561 repository.
562
562
563 Returns 0 on success.
563 Returns 0 on success.
564
564
565 options:
565 options:
566
566
567 -T --template TEMPLATE display with template
567 -T --template TEMPLATE display with template
568
568
569 (some details hidden, use --verbose to show
569 (some details hidden, use --verbose to show
570 complete help)
570 complete help)
571
571
572 Test help option with version option
572 Test help option with version option
573
573
574 $ hg add -h --version
574 $ hg add -h --version
575 Mercurial Distributed SCM (version *) (glob)
575 Mercurial Distributed SCM (version *) (glob)
576 (see https://mercurial-scm.org for more information)
576 (see https://mercurial-scm.org for more information)
577
577
578 Copyright (C) 2005-* Matt Mackall and others (glob)
578 Copyright (C) 2005-* Matt Mackall and others (glob)
579 This is free software; see the source for copying conditions. There is NO
579 This is free software; see the source for copying conditions. There is NO
580 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
580 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
581
581
582 $ hg add --skjdfks
582 $ hg add --skjdfks
583 hg add: option --skjdfks not recognized
583 hg add: option --skjdfks not recognized
584 hg add [OPTION]... [FILE]...
584 hg add [OPTION]... [FILE]...
585
585
586 add the specified files on the next commit
586 add the specified files on the next commit
587
587
588 options ([+] can be repeated):
588 options ([+] can be repeated):
589
589
590 -I --include PATTERN [+] include names matching the given patterns
590 -I --include PATTERN [+] include names matching the given patterns
591 -X --exclude PATTERN [+] exclude names matching the given patterns
591 -X --exclude PATTERN [+] exclude names matching the given patterns
592 -S --subrepos recurse into subrepositories
592 -S --subrepos recurse into subrepositories
593 -n --dry-run do not perform actions, just print output
593 -n --dry-run do not perform actions, just print output
594
594
595 (use 'hg add -h' to show more help)
595 (use 'hg add -h' to show more help)
596 [255]
596 [255]
597
597
598 Test ambiguous command help
598 Test ambiguous command help
599
599
600 $ hg help ad
600 $ hg help ad
601 list of commands:
601 list of commands:
602
602
603 add add the specified files on the next commit
603 add add the specified files on the next commit
604 addremove add all new files, delete all missing files
604 addremove add all new files, delete all missing files
605
605
606 (use 'hg help -v ad' to show built-in aliases and global options)
606 (use 'hg help -v ad' to show built-in aliases and global options)
607
607
608 Test command without options
608 Test command without options
609
609
610 $ hg help verify
610 $ hg help verify
611 hg verify
611 hg verify
612
612
613 verify the integrity of the repository
613 verify the integrity of the repository
614
614
615 Verify the integrity of the current repository.
615 Verify the integrity of the current repository.
616
616
617 This will perform an extensive check of the repository's integrity,
617 This will perform an extensive check of the repository's integrity,
618 validating the hashes and checksums of each entry in the changelog,
618 validating the hashes and checksums of each entry in the changelog,
619 manifest, and tracked files, as well as the integrity of their crosslinks
619 manifest, and tracked files, as well as the integrity of their crosslinks
620 and indices.
620 and indices.
621
621
622 Please see https://mercurial-scm.org/wiki/RepositoryCorruption for more
622 Please see https://mercurial-scm.org/wiki/RepositoryCorruption for more
623 information about recovery from corruption of the repository.
623 information about recovery from corruption of the repository.
624
624
625 Returns 0 on success, 1 if errors are encountered.
625 Returns 0 on success, 1 if errors are encountered.
626
626
627 options:
627 options:
628
628
629 (some details hidden, use --verbose to show complete help)
629 (some details hidden, use --verbose to show complete help)
630
630
631 $ hg help diff
631 $ hg help diff
632 hg diff [OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]...
632 hg diff [OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]...
633
633
634 diff repository (or selected files)
634 diff repository (or selected files)
635
635
636 Show differences between revisions for the specified files.
636 Show differences between revisions for the specified files.
637
637
638 Differences between files are shown using the unified diff format.
638 Differences between files are shown using the unified diff format.
639
639
640 Note:
640 Note:
641 'hg diff' may generate unexpected results for merges, as it will
641 'hg diff' may generate unexpected results for merges, as it will
642 default to comparing against the working directory's first parent
642 default to comparing against the working directory's first parent
643 changeset if no revisions are specified.
643 changeset if no revisions are specified.
644
644
645 When two revision arguments are given, then changes are shown between
645 When two revision arguments are given, then changes are shown between
646 those revisions. If only one revision is specified then that revision is
646 those revisions. If only one revision is specified then that revision is
647 compared to the working directory, and, when no revisions are specified,
647 compared to the working directory, and, when no revisions are specified,
648 the working directory files are compared to its first parent.
648 the working directory files are compared to its first parent.
649
649
650 Alternatively you can specify -c/--change with a revision to see the
650 Alternatively you can specify -c/--change with a revision to see the
651 changes in that changeset relative to its first parent.
651 changes in that changeset relative to its first parent.
652
652
653 Without the -a/--text option, diff will avoid generating diffs of files it
653 Without the -a/--text option, diff will avoid generating diffs of files it
654 detects as binary. With -a, diff will generate a diff anyway, probably
654 detects as binary. With -a, diff will generate a diff anyway, probably
655 with undesirable results.
655 with undesirable results.
656
656
657 Use the -g/--git option to generate diffs in the git extended diff format.
657 Use the -g/--git option to generate diffs in the git extended diff format.
658 For more information, read 'hg help diffs'.
658 For more information, read 'hg help diffs'.
659
659
660 Returns 0 on success.
660 Returns 0 on success.
661
661
662 options ([+] can be repeated):
662 options ([+] can be repeated):
663
663
664 -r --rev REV [+] revision
664 -r --rev REV [+] revision
665 -c --change REV change made by revision
665 -c --change REV change made by revision
666 -a --text treat all files as text
666 -a --text treat all files as text
667 -g --git use git extended diff format
667 -g --git use git extended diff format
668 --binary generate binary diffs in git mode (default)
668 --binary generate binary diffs in git mode (default)
669 --nodates omit dates from diff headers
669 --nodates omit dates from diff headers
670 --noprefix omit a/ and b/ prefixes from filenames
670 --noprefix omit a/ and b/ prefixes from filenames
671 -p --show-function show which function each change is in
671 -p --show-function show which function each change is in
672 --reverse produce a diff that undoes the changes
672 --reverse produce a diff that undoes the changes
673 -w --ignore-all-space ignore white space when comparing lines
673 -w --ignore-all-space ignore white space when comparing lines
674 -b --ignore-space-change ignore changes in the amount of white space
674 -b --ignore-space-change ignore changes in the amount of white space
675 -B --ignore-blank-lines ignore changes whose lines are all blank
675 -B --ignore-blank-lines ignore changes whose lines are all blank
676 -Z --ignore-space-at-eol ignore changes in whitespace at EOL
676 -Z --ignore-space-at-eol ignore changes in whitespace at EOL
677 -U --unified NUM number of lines of context to show
677 -U --unified NUM number of lines of context to show
678 --stat output diffstat-style summary of changes
678 --stat output diffstat-style summary of changes
679 --root DIR produce diffs relative to subdirectory
679 --root DIR produce diffs relative to subdirectory
680 -I --include PATTERN [+] include names matching the given patterns
680 -I --include PATTERN [+] include names matching the given patterns
681 -X --exclude PATTERN [+] exclude names matching the given patterns
681 -X --exclude PATTERN [+] exclude names matching the given patterns
682 -S --subrepos recurse into subrepositories
682 -S --subrepos recurse into subrepositories
683
683
684 (some details hidden, use --verbose to show complete help)
684 (some details hidden, use --verbose to show complete help)
685
685
686 $ hg help status
686 $ hg help status
687 hg status [OPTION]... [FILE]...
687 hg status [OPTION]... [FILE]...
688
688
689 aliases: st
689 aliases: st
690
690
691 show changed files in the working directory
691 show changed files in the working directory
692
692
693 Show status of files in the repository. If names are given, only files
693 Show status of files in the repository. If names are given, only files
694 that match are shown. Files that are clean or ignored or the source of a
694 that match are shown. Files that are clean or ignored or the source of a
695 copy/move operation, are not listed unless -c/--clean, -i/--ignored,
695 copy/move operation, are not listed unless -c/--clean, -i/--ignored,
696 -C/--copies or -A/--all are given. Unless options described with "show
696 -C/--copies or -A/--all are given. Unless options described with "show
697 only ..." are given, the options -mardu are used.
697 only ..." are given, the options -mardu are used.
698
698
699 Option -q/--quiet hides untracked (unknown and ignored) files unless
699 Option -q/--quiet hides untracked (unknown and ignored) files unless
700 explicitly requested with -u/--unknown or -i/--ignored.
700 explicitly requested with -u/--unknown or -i/--ignored.
701
701
702 Note:
702 Note:
703 'hg status' may appear to disagree with diff if permissions have
703 'hg status' may appear to disagree with diff if permissions have
704 changed or a merge has occurred. The standard diff format does not
704 changed or a merge has occurred. The standard diff format does not
705 report permission changes and diff only reports changes relative to one
705 report permission changes and diff only reports changes relative to one
706 merge parent.
706 merge parent.
707
707
708 If one revision is given, it is used as the base revision. If two
708 If one revision is given, it is used as the base revision. If two
709 revisions are given, the differences between them are shown. The --change
709 revisions are given, the differences between them are shown. The --change
710 option can also be used as a shortcut to list the changed files of a
710 option can also be used as a shortcut to list the changed files of a
711 revision from its first parent.
711 revision from its first parent.
712
712
713 The codes used to show the status of files are:
713 The codes used to show the status of files are:
714
714
715 M = modified
715 M = modified
716 A = added
716 A = added
717 R = removed
717 R = removed
718 C = clean
718 C = clean
719 ! = missing (deleted by non-hg command, but still tracked)
719 ! = missing (deleted by non-hg command, but still tracked)
720 ? = not tracked
720 ? = not tracked
721 I = ignored
721 I = ignored
722 = origin of the previous file (with --copies)
722 = origin of the previous file (with --copies)
723
723
724 Returns 0 on success.
724 Returns 0 on success.
725
725
726 options ([+] can be repeated):
726 options ([+] can be repeated):
727
727
728 -A --all show status of all files
728 -A --all show status of all files
729 -m --modified show only modified files
729 -m --modified show only modified files
730 -a --added show only added files
730 -a --added show only added files
731 -r --removed show only removed files
731 -r --removed show only removed files
732 -d --deleted show only missing files
732 -d --deleted show only missing files
733 -c --clean show only files without changes
733 -c --clean show only files without changes
734 -u --unknown show only unknown (not tracked) files
734 -u --unknown show only unknown (not tracked) files
735 -i --ignored show only ignored files
735 -i --ignored show only ignored files
736 -n --no-status hide status prefix
736 -n --no-status hide status prefix
737 -C --copies show source of copied files
737 -C --copies show source of copied files
738 -0 --print0 end filenames with NUL, for use with xargs
738 -0 --print0 end filenames with NUL, for use with xargs
739 --rev REV [+] show difference from revision
739 --rev REV [+] show difference from revision
740 --change REV list the changed files of a revision
740 --change REV list the changed files of a revision
741 -I --include PATTERN [+] include names matching the given patterns
741 -I --include PATTERN [+] include names matching the given patterns
742 -X --exclude PATTERN [+] exclude names matching the given patterns
742 -X --exclude PATTERN [+] exclude names matching the given patterns
743 -S --subrepos recurse into subrepositories
743 -S --subrepos recurse into subrepositories
744 -T --template TEMPLATE display with template
744 -T --template TEMPLATE display with template
745
745
746 (some details hidden, use --verbose to show complete help)
746 (some details hidden, use --verbose to show complete help)
747
747
748 $ hg -q help status
748 $ hg -q help status
749 hg status [OPTION]... [FILE]...
749 hg status [OPTION]... [FILE]...
750
750
751 show changed files in the working directory
751 show changed files in the working directory
752
752
753 $ hg help foo
753 $ hg help foo
754 abort: no such help topic: foo
754 abort: no such help topic: foo
755 (try 'hg help --keyword foo')
755 (try 'hg help --keyword foo')
756 [255]
756 [255]
757
757
758 $ hg skjdfks
758 $ hg skjdfks
759 hg: unknown command 'skjdfks'
759 hg: unknown command 'skjdfks'
760 (use 'hg help' for a list of commands)
760 (use 'hg help' for a list of commands)
761 [255]
761 [255]
762
762
763 Typoed command gives suggestion
763 Typoed command gives suggestion
764 $ hg puls
764 $ hg puls
765 hg: unknown command 'puls'
765 hg: unknown command 'puls'
766 (did you mean one of pull, push?)
766 (did you mean one of pull, push?)
767 [255]
767 [255]
768
768
769 Not enabled extension gets suggested
769 Not enabled extension gets suggested
770
770
771 $ hg rebase
771 $ hg rebase
772 hg: unknown command 'rebase'
772 hg: unknown command 'rebase'
773 'rebase' is provided by the following extension:
773 'rebase' is provided by the following extension:
774
774
775 rebase command to move sets of revisions to a different ancestor
775 rebase command to move sets of revisions to a different ancestor
776
776
777 (use 'hg help extensions' for information on enabling extensions)
777 (use 'hg help extensions' for information on enabling extensions)
778 [255]
778 [255]
779
779
780 Disabled extension gets suggested
780 Disabled extension gets suggested
781 $ hg --config extensions.rebase=! rebase
781 $ hg --config extensions.rebase=! rebase
782 hg: unknown command 'rebase'
782 hg: unknown command 'rebase'
783 'rebase' is provided by the following extension:
783 'rebase' is provided by the following extension:
784
784
785 rebase command to move sets of revisions to a different ancestor
785 rebase command to move sets of revisions to a different ancestor
786
786
787 (use 'hg help extensions' for information on enabling extensions)
787 (use 'hg help extensions' for information on enabling extensions)
788 [255]
788 [255]
789
789
790 Checking that help adapts based on the config:
790 Checking that help adapts based on the config:
791
791
792 $ hg help diff --config ui.tweakdefaults=true | egrep -e '^ *(-g|config)'
792 $ hg help diff --config ui.tweakdefaults=true | egrep -e '^ *(-g|config)'
793 -g --[no-]git use git extended diff format (default: on from
793 -g --[no-]git use git extended diff format (default: on from
794 config)
794 config)
795
795
796 Make sure that we don't run afoul of the help system thinking that
796 Make sure that we don't run afoul of the help system thinking that
797 this is a section and erroring out weirdly.
797 this is a section and erroring out weirdly.
798
798
799 $ hg .log
799 $ hg .log
800 hg: unknown command '.log'
800 hg: unknown command '.log'
801 (did you mean log?)
801 (did you mean log?)
802 [255]
802 [255]
803
803
804 $ hg log.
804 $ hg log.
805 hg: unknown command 'log.'
805 hg: unknown command 'log.'
806 (did you mean log?)
806 (did you mean log?)
807 [255]
807 [255]
808 $ hg pu.lh
808 $ hg pu.lh
809 hg: unknown command 'pu.lh'
809 hg: unknown command 'pu.lh'
810 (did you mean one of pull, push?)
810 (did you mean one of pull, push?)
811 [255]
811 [255]
812
812
813 $ cat > helpext.py <<EOF
813 $ cat > helpext.py <<EOF
814 > import os
814 > import os
815 > from mercurial import commands, fancyopts, registrar
815 > from mercurial import commands, fancyopts, registrar
816 >
816 >
817 > def func(arg):
817 > def func(arg):
818 > return '%sfoo' % arg
818 > return '%sfoo' % arg
819 > class customopt(fancyopts.customopt):
819 > class customopt(fancyopts.customopt):
820 > def newstate(self, oldstate, newparam, abort):
820 > def newstate(self, oldstate, newparam, abort):
821 > return '%sbar' % oldstate
821 > return '%sbar' % oldstate
822 > cmdtable = {}
822 > cmdtable = {}
823 > command = registrar.command(cmdtable)
823 > command = registrar.command(cmdtable)
824 >
824 >
825 > @command(b'nohelp',
825 > @command(b'nohelp',
826 > [(b'', b'longdesc', 3, b'x'*67),
826 > [(b'', b'longdesc', 3, b'x'*67),
827 > (b'n', b'', None, b'normal desc'),
827 > (b'n', b'', None, b'normal desc'),
828 > (b'', b'newline', b'', b'line1\nline2'),
828 > (b'', b'newline', b'', b'line1\nline2'),
829 > (b'', b'default-off', False, b'enable X'),
829 > (b'', b'default-off', False, b'enable X'),
830 > (b'', b'default-on', True, b'enable Y'),
830 > (b'', b'default-on', True, b'enable Y'),
831 > (b'', b'callableopt', func, b'adds foo'),
831 > (b'', b'callableopt', func, b'adds foo'),
832 > (b'', b'customopt', customopt(''), b'adds bar'),
832 > (b'', b'customopt', customopt(''), b'adds bar'),
833 > (b'', b'customopt-withdefault', customopt('foo'), b'adds bar')],
833 > (b'', b'customopt-withdefault', customopt('foo'), b'adds bar')],
834 > b'hg nohelp',
834 > b'hg nohelp',
835 > norepo=True)
835 > norepo=True)
836 > @command(b'debugoptADV', [(b'', b'aopt', None, b'option is (ADVANCED)')])
836 > @command(b'debugoptADV', [(b'', b'aopt', None, b'option is (ADVANCED)')])
837 > @command(b'debugoptDEP', [(b'', b'dopt', None, b'option is (DEPRECATED)')])
837 > @command(b'debugoptDEP', [(b'', b'dopt', None, b'option is (DEPRECATED)')])
838 > @command(b'debugoptEXP', [(b'', b'eopt', None, b'option is (EXPERIMENTAL)')])
838 > @command(b'debugoptEXP', [(b'', b'eopt', None, b'option is (EXPERIMENTAL)')])
839 > def nohelp(ui, *args, **kwargs):
839 > def nohelp(ui, *args, **kwargs):
840 > pass
840 > pass
841 >
841 >
842 > @command(b'hashelp', [], b'hg hashelp', norepo=True)
842 > @command(b'hashelp', [], b'hg hashelp', norepo=True)
843 > def hashelp(ui, *args, **kwargs):
843 > def hashelp(ui, *args, **kwargs):
844 > """Extension command's help"""
844 > """Extension command's help"""
845 >
845 >
846 > def uisetup(ui):
846 > def uisetup(ui):
847 > ui.setconfig(b'alias', b'shellalias', b'!echo hi', b'helpext')
847 > ui.setconfig(b'alias', b'shellalias', b'!echo hi', b'helpext')
848 > ui.setconfig(b'alias', b'hgalias', b'summary', b'helpext')
848 > ui.setconfig(b'alias', b'hgalias', b'summary', b'helpext')
849 > ui.setconfig(b'alias', b'hgalias:doc', b'My doc', b'helpext')
849 > ui.setconfig(b'alias', b'hgalias:doc', b'My doc', b'helpext')
850 > ui.setconfig(b'alias', b'hgalias:category', b'navigation', b'helpext')
850 > ui.setconfig(b'alias', b'hgalias:category', b'navigation', b'helpext')
851 > ui.setconfig(b'alias', b'hgaliasnodoc', b'summary', b'helpext')
851 > ui.setconfig(b'alias', b'hgaliasnodoc', b'summary', b'helpext')
852 >
852 >
853 > EOF
853 > EOF
854 $ echo '[extensions]' >> $HGRCPATH
854 $ echo '[extensions]' >> $HGRCPATH
855 $ echo "helpext = `pwd`/helpext.py" >> $HGRCPATH
855 $ echo "helpext = `pwd`/helpext.py" >> $HGRCPATH
856
856
857 Test for aliases
857 Test for aliases
858
858
859 $ hg help | grep hgalias
859 $ hg help | grep hgalias
860 hgalias My doc
860 hgalias My doc
861
861
862 $ hg help hgalias
862 $ hg help hgalias
863 hg hgalias [--remote]
863 hg hgalias [--remote]
864
864
865 alias for: hg summary
865 alias for: hg summary
866
866
867 My doc
867 My doc
868
868
869 defined by: helpext
869 defined by: helpext
870
870
871 options:
871 options:
872
872
873 --remote check for push and pull
873 --remote check for push and pull
874
874
875 (some details hidden, use --verbose to show complete help)
875 (some details hidden, use --verbose to show complete help)
876 $ hg help hgaliasnodoc
876 $ hg help hgaliasnodoc
877 hg hgaliasnodoc [--remote]
877 hg hgaliasnodoc [--remote]
878
878
879 alias for: hg summary
879 alias for: hg summary
880
880
881 summarize working directory state
881 summarize working directory state
882
882
883 This generates a brief summary of the working directory state, including
883 This generates a brief summary of the working directory state, including
884 parents, branch, commit status, phase and available updates.
884 parents, branch, commit status, phase and available updates.
885
885
886 With the --remote option, this will check the default paths for incoming
886 With the --remote option, this will check the default paths for incoming
887 and outgoing changes. This can be time-consuming.
887 and outgoing changes. This can be time-consuming.
888
888
889 Returns 0 on success.
889 Returns 0 on success.
890
890
891 defined by: helpext
891 defined by: helpext
892
892
893 options:
893 options:
894
894
895 --remote check for push and pull
895 --remote check for push and pull
896
896
897 (some details hidden, use --verbose to show complete help)
897 (some details hidden, use --verbose to show complete help)
898
898
899 $ hg help shellalias
899 $ hg help shellalias
900 hg shellalias
900 hg shellalias
901
901
902 shell alias for: echo hi
902 shell alias for: echo hi
903
903
904 (no help text available)
904 (no help text available)
905
905
906 defined by: helpext
906 defined by: helpext
907
907
908 (some details hidden, use --verbose to show complete help)
908 (some details hidden, use --verbose to show complete help)
909
909
910 Test command with no help text
910 Test command with no help text
911
911
912 $ hg help nohelp
912 $ hg help nohelp
913 hg nohelp
913 hg nohelp
914
914
915 (no help text available)
915 (no help text available)
916
916
917 options:
917 options:
918
918
919 --longdesc VALUE
919 --longdesc VALUE
920 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
920 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
921 xxxxxxxxxxxxxxxxxxxxxxx (default: 3)
921 xxxxxxxxxxxxxxxxxxxxxxx (default: 3)
922 -n -- normal desc
922 -n -- normal desc
923 --newline VALUE line1 line2
923 --newline VALUE line1 line2
924 --default-off enable X
924 --default-off enable X
925 --[no-]default-on enable Y (default: on)
925 --[no-]default-on enable Y (default: on)
926 --callableopt VALUE adds foo
926 --callableopt VALUE adds foo
927 --customopt VALUE adds bar
927 --customopt VALUE adds bar
928 --customopt-withdefault VALUE adds bar (default: foo)
928 --customopt-withdefault VALUE adds bar (default: foo)
929
929
930 (some details hidden, use --verbose to show complete help)
930 (some details hidden, use --verbose to show complete help)
931
931
932 Test that default list of commands includes extension commands that have help,
932 Test that default list of commands includes extension commands that have help,
933 but not those that don't, except in verbose mode, when a keyword is passed, or
933 but not those that don't, except in verbose mode, when a keyword is passed, or
934 when help about the extension is requested.
934 when help about the extension is requested.
935
935
936 #if no-extraextensions
936 #if no-extraextensions
937
937
938 $ hg help | grep hashelp
938 $ hg help | grep hashelp
939 hashelp Extension command's help
939 hashelp Extension command's help
940 $ hg help | grep nohelp
940 $ hg help | grep nohelp
941 [1]
941 [1]
942 $ hg help -v | grep nohelp
942 $ hg help -v | grep nohelp
943 nohelp (no help text available)
943 nohelp (no help text available)
944
944
945 $ hg help -k nohelp
945 $ hg help -k nohelp
946 Commands:
946 Commands:
947
947
948 nohelp hg nohelp
948 nohelp hg nohelp
949
949
950 Extension Commands:
950 Extension Commands:
951
951
952 nohelp (no help text available)
952 nohelp (no help text available)
953
953
954 $ hg help helpext
954 $ hg help helpext
955 helpext extension - no help text available
955 helpext extension - no help text available
956
956
957 list of commands:
957 list of commands:
958
958
959 hashelp Extension command's help
959 hashelp Extension command's help
960 nohelp (no help text available)
960 nohelp (no help text available)
961
961
962 (use 'hg help -v helpext' to show built-in aliases and global options)
962 (use 'hg help -v helpext' to show built-in aliases and global options)
963
963
964 #endif
964 #endif
965
965
966 Test list of internal help commands
966 Test list of internal help commands
967
967
968 $ hg help debug
968 $ hg help debug
969 debug commands (internal and unsupported):
969 debug commands (internal and unsupported):
970
970
971 debugancestor
971 debugancestor
972 find the ancestor revision of two revisions in a given index
972 find the ancestor revision of two revisions in a given index
973 debugantivirusrunning
973 debugantivirusrunning
974 attempt to trigger an antivirus scanner to see if one is active
974 attempt to trigger an antivirus scanner to see if one is active
975 debugapplystreamclonebundle
975 debugapplystreamclonebundle
976 apply a stream clone bundle file
976 apply a stream clone bundle file
977 debugbackupbundle
977 debugbackupbundle
978 lists the changesets available in backup bundles
978 lists the changesets available in backup bundles
979 debugbuilddag
979 debugbuilddag
980 builds a repo with a given DAG from scratch in the current
980 builds a repo with a given DAG from scratch in the current
981 empty repo
981 empty repo
982 debugbundle lists the contents of a bundle
982 debugbundle lists the contents of a bundle
983 debugcapabilities
983 debugcapabilities
984 lists the capabilities of a remote peer
984 lists the capabilities of a remote peer
985 debugchangedfiles
985 debugchangedfiles
986 list the stored files changes for a revision
986 list the stored files changes for a revision
987 debugcheckstate
987 debugcheckstate
988 validate the correctness of the current dirstate
988 validate the correctness of the current dirstate
989 debugcolor show available color, effects or style
989 debugcolor show available color, effects or style
990 debugcommands
990 debugcommands
991 list all available commands and options
991 list all available commands and options
992 debugcomplete
992 debugcomplete
993 returns the completion list associated with the given command
993 returns the completion list associated with the given command
994 debugcreatestreamclonebundle
994 debugcreatestreamclonebundle
995 create a stream clone bundle file
995 create a stream clone bundle file
996 debugdag format the changelog or an index DAG as a concise textual
996 debugdag format the changelog or an index DAG as a concise textual
997 description
997 description
998 debugdata dump the contents of a data file revision
998 debugdata dump the contents of a data file revision
999 debugdate parse and display a date
999 debugdate parse and display a date
1000 debugdeltachain
1000 debugdeltachain
1001 dump information about delta chains in a revlog
1001 dump information about delta chains in a revlog
1002 debugdirstate
1002 debugdirstate
1003 show the contents of the current dirstate
1003 show the contents of the current dirstate
1004 debugdiscovery
1004 debugdiscovery
1005 runs the changeset discovery protocol in isolation
1005 runs the changeset discovery protocol in isolation
1006 debugdownload
1006 debugdownload
1007 download a resource using Mercurial logic and config
1007 download a resource using Mercurial logic and config
1008 debugextensions
1008 debugextensions
1009 show information about active extensions
1009 show information about active extensions
1010 debugfileset parse and apply a fileset specification
1010 debugfileset parse and apply a fileset specification
1011 debugformat display format information about the current repository
1011 debugformat display format information about the current repository
1012 debugfsinfo show information detected about current filesystem
1012 debugfsinfo show information detected about current filesystem
1013 debuggetbundle
1013 debuggetbundle
1014 retrieves a bundle from a repo
1014 retrieves a bundle from a repo
1015 debugignore display the combined ignore pattern and information about
1015 debugignore display the combined ignore pattern and information about
1016 ignored files
1016 ignored files
1017 debugindex dump index data for a storage primitive
1017 debugindex dump index data for a storage primitive
1018 debugindexdot
1018 debugindexdot
1019 dump an index DAG as a graphviz dot file
1019 dump an index DAG as a graphviz dot file
1020 debugindexstats
1020 debugindexstats
1021 show stats related to the changelog index
1021 show stats related to the changelog index
1022 debuginstall test Mercurial installation
1022 debuginstall test Mercurial installation
1023 debugknown test whether node ids are known to a repo
1023 debugknown test whether node ids are known to a repo
1024 debuglocks show or modify state of locks
1024 debuglocks show or modify state of locks
1025 debugmanifestfulltextcache
1025 debugmanifestfulltextcache
1026 show, clear or amend the contents of the manifest fulltext
1026 show, clear or amend the contents of the manifest fulltext
1027 cache
1027 cache
1028 debugmergestate
1028 debugmergestate
1029 print merge state
1029 print merge state
1030 debugnamecomplete
1030 debugnamecomplete
1031 complete "names" - tags, open branch names, bookmark names
1031 complete "names" - tags, open branch names, bookmark names
1032 debugnodemap write and inspect on disk nodemap
1032 debugnodemap write and inspect on disk nodemap
1033 debugobsolete
1033 debugobsolete
1034 create arbitrary obsolete marker
1034 create arbitrary obsolete marker
1035 debugoptADV (no help text available)
1035 debugoptADV (no help text available)
1036 debugoptDEP (no help text available)
1036 debugoptDEP (no help text available)
1037 debugoptEXP (no help text available)
1037 debugoptEXP (no help text available)
1038 debugp1copies
1038 debugp1copies
1039 dump copy information compared to p1
1039 dump copy information compared to p1
1040 debugp2copies
1040 debugp2copies
1041 dump copy information compared to p2
1041 dump copy information compared to p2
1042 debugpathcomplete
1042 debugpathcomplete
1043 complete part or all of a tracked path
1043 complete part or all of a tracked path
1044 debugpathcopies
1044 debugpathcopies
1045 show copies between two revisions
1045 show copies between two revisions
1046 debugpeer establish a connection to a peer repository
1046 debugpeer establish a connection to a peer repository
1047 debugpickmergetool
1047 debugpickmergetool
1048 examine which merge tool is chosen for specified file
1048 examine which merge tool is chosen for specified file
1049 debugpushkey access the pushkey key/value protocol
1049 debugpushkey access the pushkey key/value protocol
1050 debugpvec (no help text available)
1050 debugpvec (no help text available)
1051 debugrebuilddirstate
1051 debugrebuilddirstate
1052 rebuild the dirstate as it would look like for the given
1052 rebuild the dirstate as it would look like for the given
1053 revision
1053 revision
1054 debugrebuildfncache
1054 debugrebuildfncache
1055 rebuild the fncache file
1055 rebuild the fncache file
1056 debugrename dump rename information
1056 debugrename dump rename information
1057 debugrequires
1057 debugrequires
1058 print the current repo requirements
1058 print the current repo requirements
1059 debugrevlog show data and statistics about a revlog
1059 debugrevlog show data and statistics about a revlog
1060 debugrevlogindex
1060 debugrevlogindex
1061 dump the contents of a revlog index
1061 dump the contents of a revlog index
1062 debugrevspec parse and apply a revision specification
1062 debugrevspec parse and apply a revision specification
1063 debugserve run a server with advanced settings
1063 debugserve run a server with advanced settings
1064 debugsetparents
1064 debugsetparents
1065 manually set the parents of the current working directory
1065 manually set the parents of the current working directory
1066 debugsidedata
1066 debugsidedata
1067 dump the side data for a cl/manifest/file revision
1067 dump the side data for a cl/manifest/file revision
1068 debugssl test a secure connection to a server
1068 debugssl test a secure connection to a server
1069 debugstrip strip changesets and all their descendants from the repository
1069 debugstrip strip changesets and all their descendants from the repository
1070 debugsub (no help text available)
1070 debugsub (no help text available)
1071 debugsuccessorssets
1071 debugsuccessorssets
1072 show set of successors for revision
1072 show set of successors for revision
1073 debugtagscache
1073 debugtagscache
1074 display the contents of .hg/cache/hgtagsfnodes1
1074 display the contents of .hg/cache/hgtagsfnodes1
1075 debugtemplate
1075 debugtemplate
1076 parse and apply a template
1076 parse and apply a template
1077 debuguigetpass
1077 debuguigetpass
1078 show prompt to type password
1078 show prompt to type password
1079 debuguiprompt
1079 debuguiprompt
1080 show plain prompt
1080 show plain prompt
1081 debugupdatecaches
1081 debugupdatecaches
1082 warm all known caches in the repository
1082 warm all known caches in the repository
1083 debugupgraderepo
1083 debugupgraderepo
1084 upgrade a repository to use different features
1084 upgrade a repository to use different features
1085 debugwalk show how files match on given patterns
1085 debugwalk show how files match on given patterns
1086 debugwhyunstable
1086 debugwhyunstable
1087 explain instabilities of a changeset
1087 explain instabilities of a changeset
1088 debugwireargs
1088 debugwireargs
1089 (no help text available)
1089 (no help text available)
1090 debugwireproto
1090 debugwireproto
1091 send wire protocol commands to a server
1091 send wire protocol commands to a server
1092
1092
1093 (use 'hg help -v debug' to show built-in aliases and global options)
1093 (use 'hg help -v debug' to show built-in aliases and global options)
1094
1094
1095 internals topic renders index of available sub-topics
1095 internals topic renders index of available sub-topics
1096
1096
1097 $ hg help internals
1097 $ hg help internals
1098 Technical implementation topics
1098 Technical implementation topics
1099 """""""""""""""""""""""""""""""
1099 """""""""""""""""""""""""""""""
1100
1100
1101 To access a subtopic, use "hg help internals.{subtopic-name}"
1101 To access a subtopic, use "hg help internals.{subtopic-name}"
1102
1102
1103 bid-merge Bid Merge Algorithm
1103 bid-merge Bid Merge Algorithm
1104 bundle2 Bundle2
1104 bundle2 Bundle2
1105 bundles Bundles
1105 bundles Bundles
1106 cbor CBOR
1106 cbor CBOR
1107 censor Censor
1107 censor Censor
1108 changegroups Changegroups
1108 changegroups Changegroups
1109 config Config Registrar
1109 config Config Registrar
1110 extensions Extension API
1110 extensions Extension API
1111 mergestate Mergestate
1111 mergestate Mergestate
1112 requirements Repository Requirements
1112 requirements Repository Requirements
1113 revlogs Revision Logs
1113 revlogs Revision Logs
1114 wireprotocol Wire Protocol
1114 wireprotocol Wire Protocol
1115 wireprotocolrpc
1115 wireprotocolrpc
1116 Wire Protocol RPC
1116 Wire Protocol RPC
1117 wireprotocolv2
1117 wireprotocolv2
1118 Wire Protocol Version 2
1118 Wire Protocol Version 2
1119
1119
1120 sub-topics can be accessed
1120 sub-topics can be accessed
1121
1121
1122 $ hg help internals.changegroups
1122 $ hg help internals.changegroups
1123 Changegroups
1123 Changegroups
1124 """"""""""""
1124 """"""""""""
1125
1125
1126 Changegroups are representations of repository revlog data, specifically
1126 Changegroups are representations of repository revlog data, specifically
1127 the changelog data, root/flat manifest data, treemanifest data, and
1127 the changelog data, root/flat manifest data, treemanifest data, and
1128 filelogs.
1128 filelogs.
1129
1129
1130 There are 3 versions of changegroups: "1", "2", and "3". From a high-
1130 There are 3 versions of changegroups: "1", "2", and "3". From a high-
1131 level, versions "1" and "2" are almost exactly the same, with the only
1131 level, versions "1" and "2" are almost exactly the same, with the only
1132 difference being an additional item in the *delta header*. Version "3"
1132 difference being an additional item in the *delta header*. Version "3"
1133 adds support for storage flags in the *delta header* and optionally
1133 adds support for storage flags in the *delta header* and optionally
1134 exchanging treemanifests (enabled by setting an option on the
1134 exchanging treemanifests (enabled by setting an option on the
1135 "changegroup" part in the bundle2).
1135 "changegroup" part in the bundle2).
1136
1136
1137 Changegroups when not exchanging treemanifests consist of 3 logical
1137 Changegroups when not exchanging treemanifests consist of 3 logical
1138 segments:
1138 segments:
1139
1139
1140 +---------------------------------+
1140 +---------------------------------+
1141 | | | |
1141 | | | |
1142 | changeset | manifest | filelogs |
1142 | changeset | manifest | filelogs |
1143 | | | |
1143 | | | |
1144 | | | |
1144 | | | |
1145 +---------------------------------+
1145 +---------------------------------+
1146
1146
1147 When exchanging treemanifests, there are 4 logical segments:
1147 When exchanging treemanifests, there are 4 logical segments:
1148
1148
1149 +-------------------------------------------------+
1149 +-------------------------------------------------+
1150 | | | | |
1150 | | | | |
1151 | changeset | root | treemanifests | filelogs |
1151 | changeset | root | treemanifests | filelogs |
1152 | | manifest | | |
1152 | | manifest | | |
1153 | | | | |
1153 | | | | |
1154 +-------------------------------------------------+
1154 +-------------------------------------------------+
1155
1155
1156 The principle building block of each segment is a *chunk*. A *chunk* is a
1156 The principle building block of each segment is a *chunk*. A *chunk* is a
1157 framed piece of data:
1157 framed piece of data:
1158
1158
1159 +---------------------------------------+
1159 +---------------------------------------+
1160 | | |
1160 | | |
1161 | length | data |
1161 | length | data |
1162 | (4 bytes) | (<length - 4> bytes) |
1162 | (4 bytes) | (<length - 4> bytes) |
1163 | | |
1163 | | |
1164 +---------------------------------------+
1164 +---------------------------------------+
1165
1165
1166 All integers are big-endian signed integers. Each chunk starts with a
1166 All integers are big-endian signed integers. Each chunk starts with a
1167 32-bit integer indicating the length of the entire chunk (including the
1167 32-bit integer indicating the length of the entire chunk (including the
1168 length field itself).
1168 length field itself).
1169
1169
1170 There is a special case chunk that has a value of 0 for the length
1170 There is a special case chunk that has a value of 0 for the length
1171 ("0x00000000"). We call this an *empty chunk*.
1171 ("0x00000000"). We call this an *empty chunk*.
1172
1172
1173 Delta Groups
1173 Delta Groups
1174 ============
1174 ============
1175
1175
1176 A *delta group* expresses the content of a revlog as a series of deltas,
1176 A *delta group* expresses the content of a revlog as a series of deltas,
1177 or patches against previous revisions.
1177 or patches against previous revisions.
1178
1178
1179 Delta groups consist of 0 or more *chunks* followed by the *empty chunk*
1179 Delta groups consist of 0 or more *chunks* followed by the *empty chunk*
1180 to signal the end of the delta group:
1180 to signal the end of the delta group:
1181
1181
1182 +------------------------------------------------------------------------+
1182 +------------------------------------------------------------------------+
1183 | | | | | |
1183 | | | | | |
1184 | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 |
1184 | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 |
1185 | (4 bytes) | (various) | (4 bytes) | (various) | (4 bytes) |
1185 | (4 bytes) | (various) | (4 bytes) | (various) | (4 bytes) |
1186 | | | | | |
1186 | | | | | |
1187 +------------------------------------------------------------------------+
1187 +------------------------------------------------------------------------+
1188
1188
1189 Each *chunk*'s data consists of the following:
1189 Each *chunk*'s data consists of the following:
1190
1190
1191 +---------------------------------------+
1191 +---------------------------------------+
1192 | | |
1192 | | |
1193 | delta header | delta data |
1193 | delta header | delta data |
1194 | (various by version) | (various) |
1194 | (various by version) | (various) |
1195 | | |
1195 | | |
1196 +---------------------------------------+
1196 +---------------------------------------+
1197
1197
1198 The *delta data* is a series of *delta*s that describe a diff from an
1198 The *delta data* is a series of *delta*s that describe a diff from an
1199 existing entry (either that the recipient already has, or previously
1199 existing entry (either that the recipient already has, or previously
1200 specified in the bundle/changegroup).
1200 specified in the bundle/changegroup).
1201
1201
1202 The *delta header* is different between versions "1", "2", and "3" of the
1202 The *delta header* is different between versions "1", "2", and "3" of the
1203 changegroup format.
1203 changegroup format.
1204
1204
1205 Version 1 (headerlen=80):
1205 Version 1 (headerlen=80):
1206
1206
1207 +------------------------------------------------------+
1207 +------------------------------------------------------+
1208 | | | | |
1208 | | | | |
1209 | node | p1 node | p2 node | link node |
1209 | node | p1 node | p2 node | link node |
1210 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) |
1210 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) |
1211 | | | | |
1211 | | | | |
1212 +------------------------------------------------------+
1212 +------------------------------------------------------+
1213
1213
1214 Version 2 (headerlen=100):
1214 Version 2 (headerlen=100):
1215
1215
1216 +------------------------------------------------------------------+
1216 +------------------------------------------------------------------+
1217 | | | | | |
1217 | | | | | |
1218 | node | p1 node | p2 node | base node | link node |
1218 | node | p1 node | p2 node | base node | link node |
1219 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) |
1219 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) |
1220 | | | | | |
1220 | | | | | |
1221 +------------------------------------------------------------------+
1221 +------------------------------------------------------------------+
1222
1222
1223 Version 3 (headerlen=102):
1223 Version 3 (headerlen=102):
1224
1224
1225 +------------------------------------------------------------------------------+
1225 +------------------------------------------------------------------------------+
1226 | | | | | | |
1226 | | | | | | |
1227 | node | p1 node | p2 node | base node | link node | flags |
1227 | node | p1 node | p2 node | base node | link node | flags |
1228 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) |
1228 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) |
1229 | | | | | | |
1229 | | | | | | |
1230 +------------------------------------------------------------------------------+
1230 +------------------------------------------------------------------------------+
1231
1231
1232 The *delta data* consists of "chunklen - 4 - headerlen" bytes, which
1232 The *delta data* consists of "chunklen - 4 - headerlen" bytes, which
1233 contain a series of *delta*s, densely packed (no separators). These deltas
1233 contain a series of *delta*s, densely packed (no separators). These deltas
1234 describe a diff from an existing entry (either that the recipient already
1234 describe a diff from an existing entry (either that the recipient already
1235 has, or previously specified in the bundle/changegroup). The format is
1235 has, or previously specified in the bundle/changegroup). The format is
1236 described more fully in "hg help internals.bdiff", but briefly:
1236 described more fully in "hg help internals.bdiff", but briefly:
1237
1237
1238 +---------------------------------------------------------------+
1238 +---------------------------------------------------------------+
1239 | | | | |
1239 | | | | |
1240 | start offset | end offset | new length | content |
1240 | start offset | end offset | new length | content |
1241 | (4 bytes) | (4 bytes) | (4 bytes) | (<new length> bytes) |
1241 | (4 bytes) | (4 bytes) | (4 bytes) | (<new length> bytes) |
1242 | | | | |
1242 | | | | |
1243 +---------------------------------------------------------------+
1243 +---------------------------------------------------------------+
1244
1244
1245 Please note that the length field in the delta data does *not* include
1245 Please note that the length field in the delta data does *not* include
1246 itself.
1246 itself.
1247
1247
1248 In version 1, the delta is always applied against the previous node from
1248 In version 1, the delta is always applied against the previous node from
1249 the changegroup or the first parent if this is the first entry in the
1249 the changegroup or the first parent if this is the first entry in the
1250 changegroup.
1250 changegroup.
1251
1251
1252 In version 2 and up, the delta base node is encoded in the entry in the
1252 In version 2 and up, the delta base node is encoded in the entry in the
1253 changegroup. This allows the delta to be expressed against any parent,
1253 changegroup. This allows the delta to be expressed against any parent,
1254 which can result in smaller deltas and more efficient encoding of data.
1254 which can result in smaller deltas and more efficient encoding of data.
1255
1255
1256 The *flags* field holds bitwise flags affecting the processing of revision
1256 The *flags* field holds bitwise flags affecting the processing of revision
1257 data. The following flags are defined:
1257 data. The following flags are defined:
1258
1258
1259 32768
1259 32768
1260 Censored revision. The revision's fulltext has been replaced by censor
1260 Censored revision. The revision's fulltext has been replaced by censor
1261 metadata. May only occur on file revisions.
1261 metadata. May only occur on file revisions.
1262
1262
1263 16384
1263 16384
1264 Ellipsis revision. Revision hash does not match data (likely due to
1264 Ellipsis revision. Revision hash does not match data (likely due to
1265 rewritten parents).
1265 rewritten parents).
1266
1266
1267 8192
1267 8192
1268 Externally stored. The revision fulltext contains "key:value" "\n"
1268 Externally stored. The revision fulltext contains "key:value" "\n"
1269 delimited metadata defining an object stored elsewhere. Used by the LFS
1269 delimited metadata defining an object stored elsewhere. Used by the LFS
1270 extension.
1270 extension.
1271
1271
1272 For historical reasons, the integer values are identical to revlog version
1272 For historical reasons, the integer values are identical to revlog version
1273 1 per-revision storage flags and correspond to bits being set in this
1273 1 per-revision storage flags and correspond to bits being set in this
1274 2-byte field. Bits were allocated starting from the most-significant bit,
1274 2-byte field. Bits were allocated starting from the most-significant bit,
1275 hence the reverse ordering and allocation of these flags.
1275 hence the reverse ordering and allocation of these flags.
1276
1276
1277 Changeset Segment
1277 Changeset Segment
1278 =================
1278 =================
1279
1279
1280 The *changeset segment* consists of a single *delta group* holding
1280 The *changeset segment* consists of a single *delta group* holding
1281 changelog data. The *empty chunk* at the end of the *delta group* denotes
1281 changelog data. The *empty chunk* at the end of the *delta group* denotes
1282 the boundary to the *manifest segment*.
1282 the boundary to the *manifest segment*.
1283
1283
1284 Manifest Segment
1284 Manifest Segment
1285 ================
1285 ================
1286
1286
1287 The *manifest segment* consists of a single *delta group* holding manifest
1287 The *manifest segment* consists of a single *delta group* holding manifest
1288 data. If treemanifests are in use, it contains only the manifest for the
1288 data. If treemanifests are in use, it contains only the manifest for the
1289 root directory of the repository. Otherwise, it contains the entire
1289 root directory of the repository. Otherwise, it contains the entire
1290 manifest data. The *empty chunk* at the end of the *delta group* denotes
1290 manifest data. The *empty chunk* at the end of the *delta group* denotes
1291 the boundary to the next segment (either the *treemanifests segment* or
1291 the boundary to the next segment (either the *treemanifests segment* or
1292 the *filelogs segment*, depending on version and the request options).
1292 the *filelogs segment*, depending on version and the request options).
1293
1293
1294 Treemanifests Segment
1294 Treemanifests Segment
1295 ---------------------
1295 ---------------------
1296
1296
1297 The *treemanifests segment* only exists in changegroup version "3", and
1297 The *treemanifests segment* only exists in changegroup version "3", and
1298 only if the 'treemanifest' param is part of the bundle2 changegroup part
1298 only if the 'treemanifest' param is part of the bundle2 changegroup part
1299 (it is not possible to use changegroup version 3 outside of bundle2).
1299 (it is not possible to use changegroup version 3 outside of bundle2).
1300 Aside from the filenames in the *treemanifests segment* containing a
1300 Aside from the filenames in the *treemanifests segment* containing a
1301 trailing "/" character, it behaves identically to the *filelogs segment*
1301 trailing "/" character, it behaves identically to the *filelogs segment*
1302 (see below). The final sub-segment is followed by an *empty chunk*
1302 (see below). The final sub-segment is followed by an *empty chunk*
1303 (logically, a sub-segment with filename size 0). This denotes the boundary
1303 (logically, a sub-segment with filename size 0). This denotes the boundary
1304 to the *filelogs segment*.
1304 to the *filelogs segment*.
1305
1305
1306 Filelogs Segment
1306 Filelogs Segment
1307 ================
1307 ================
1308
1308
1309 The *filelogs segment* consists of multiple sub-segments, each
1309 The *filelogs segment* consists of multiple sub-segments, each
1310 corresponding to an individual file whose data is being described:
1310 corresponding to an individual file whose data is being described:
1311
1311
1312 +--------------------------------------------------+
1312 +--------------------------------------------------+
1313 | | | | | |
1313 | | | | | |
1314 | filelog0 | filelog1 | filelog2 | ... | 0x0 |
1314 | filelog0 | filelog1 | filelog2 | ... | 0x0 |
1315 | | | | | (4 bytes) |
1315 | | | | | (4 bytes) |
1316 | | | | | |
1316 | | | | | |
1317 +--------------------------------------------------+
1317 +--------------------------------------------------+
1318
1318
1319 The final filelog sub-segment is followed by an *empty chunk* (logically,
1319 The final filelog sub-segment is followed by an *empty chunk* (logically,
1320 a sub-segment with filename size 0). This denotes the end of the segment
1320 a sub-segment with filename size 0). This denotes the end of the segment
1321 and of the overall changegroup.
1321 and of the overall changegroup.
1322
1322
1323 Each filelog sub-segment consists of the following:
1323 Each filelog sub-segment consists of the following:
1324
1324
1325 +------------------------------------------------------+
1325 +------------------------------------------------------+
1326 | | | |
1326 | | | |
1327 | filename length | filename | delta group |
1327 | filename length | filename | delta group |
1328 | (4 bytes) | (<length - 4> bytes) | (various) |
1328 | (4 bytes) | (<length - 4> bytes) | (various) |
1329 | | | |
1329 | | | |
1330 +------------------------------------------------------+
1330 +------------------------------------------------------+
1331
1331
1332 That is, a *chunk* consisting of the filename (not terminated or padded)
1332 That is, a *chunk* consisting of the filename (not terminated or padded)
1333 followed by N chunks constituting the *delta group* for this file. The
1333 followed by N chunks constituting the *delta group* for this file. The
1334 *empty chunk* at the end of each *delta group* denotes the boundary to the
1334 *empty chunk* at the end of each *delta group* denotes the boundary to the
1335 next filelog sub-segment.
1335 next filelog sub-segment.
1336
1336
1337 non-existent subtopics print an error
1337 non-existent subtopics print an error
1338
1338
1339 $ hg help internals.foo
1339 $ hg help internals.foo
1340 abort: no such help topic: internals.foo
1340 abort: no such help topic: internals.foo
1341 (try 'hg help --keyword foo')
1341 (try 'hg help --keyword foo')
1342 [255]
1342 [255]
1343
1343
1344 test advanced, deprecated and experimental options are hidden in command help
1344 test advanced, deprecated and experimental options are hidden in command help
1345 $ hg help debugoptADV
1345 $ hg help debugoptADV
1346 hg debugoptADV
1346 hg debugoptADV
1347
1347
1348 (no help text available)
1348 (no help text available)
1349
1349
1350 options:
1350 options:
1351
1351
1352 (some details hidden, use --verbose to show complete help)
1352 (some details hidden, use --verbose to show complete help)
1353 $ hg help debugoptDEP
1353 $ hg help debugoptDEP
1354 hg debugoptDEP
1354 hg debugoptDEP
1355
1355
1356 (no help text available)
1356 (no help text available)
1357
1357
1358 options:
1358 options:
1359
1359
1360 (some details hidden, use --verbose to show complete help)
1360 (some details hidden, use --verbose to show complete help)
1361
1361
1362 $ hg help debugoptEXP
1362 $ hg help debugoptEXP
1363 hg debugoptEXP
1363 hg debugoptEXP
1364
1364
1365 (no help text available)
1365 (no help text available)
1366
1366
1367 options:
1367 options:
1368
1368
1369 (some details hidden, use --verbose to show complete help)
1369 (some details hidden, use --verbose to show complete help)
1370
1370
1371 test advanced, deprecated and experimental options are shown with -v
1371 test advanced, deprecated and experimental options are shown with -v
1372 $ hg help -v debugoptADV | grep aopt
1372 $ hg help -v debugoptADV | grep aopt
1373 --aopt option is (ADVANCED)
1373 --aopt option is (ADVANCED)
1374 $ hg help -v debugoptDEP | grep dopt
1374 $ hg help -v debugoptDEP | grep dopt
1375 --dopt option is (DEPRECATED)
1375 --dopt option is (DEPRECATED)
1376 $ hg help -v debugoptEXP | grep eopt
1376 $ hg help -v debugoptEXP | grep eopt
1377 --eopt option is (EXPERIMENTAL)
1377 --eopt option is (EXPERIMENTAL)
1378
1378
1379 #if gettext
1379 #if gettext
1380 test deprecated option is hidden with translation with untranslated description
1380 test deprecated option is hidden with translation with untranslated description
1381 (use many globy for not failing on changed transaction)
1381 (use many globy for not failing on changed transaction)
1382 $ LANGUAGE=sv hg help debugoptDEP
1382 $ LANGUAGE=sv hg help debugoptDEP
1383 hg debugoptDEP
1383 hg debugoptDEP
1384
1384
1385 (*) (glob)
1385 (*) (glob)
1386
1386
1387 options:
1387 options:
1388
1388
1389 (some details hidden, use --verbose to show complete help)
1389 (some details hidden, use --verbose to show complete help)
1390 #endif
1390 #endif
1391
1391
1392 Test commands that collide with topics (issue4240)
1392 Test commands that collide with topics (issue4240)
1393
1393
1394 $ hg config -hq
1394 $ hg config -hq
1395 hg config [-u] [NAME]...
1395 hg config [-u] [NAME]...
1396
1396
1397 show combined config settings from all hgrc files
1397 show combined config settings from all hgrc files
1398 $ hg showconfig -hq
1398 $ hg showconfig -hq
1399 hg config [-u] [NAME]...
1399 hg config [-u] [NAME]...
1400
1400
1401 show combined config settings from all hgrc files
1401 show combined config settings from all hgrc files
1402
1402
1403 Test a help topic
1403 Test a help topic
1404
1404
1405 $ hg help dates
1405 $ hg help dates
1406 Date Formats
1406 Date Formats
1407 """"""""""""
1407 """"""""""""
1408
1408
1409 Some commands allow the user to specify a date, e.g.:
1409 Some commands allow the user to specify a date, e.g.:
1410
1410
1411 - backout, commit, import, tag: Specify the commit date.
1411 - backout, commit, import, tag: Specify the commit date.
1412 - log, revert, update: Select revision(s) by date.
1412 - log, revert, update: Select revision(s) by date.
1413
1413
1414 Many date formats are valid. Here are some examples:
1414 Many date formats are valid. Here are some examples:
1415
1415
1416 - "Wed Dec 6 13:18:29 2006" (local timezone assumed)
1416 - "Wed Dec 6 13:18:29 2006" (local timezone assumed)
1417 - "Dec 6 13:18 -0600" (year assumed, time offset provided)
1417 - "Dec 6 13:18 -0600" (year assumed, time offset provided)
1418 - "Dec 6 13:18 UTC" (UTC and GMT are aliases for +0000)
1418 - "Dec 6 13:18 UTC" (UTC and GMT are aliases for +0000)
1419 - "Dec 6" (midnight)
1419 - "Dec 6" (midnight)
1420 - "13:18" (today assumed)
1420 - "13:18" (today assumed)
1421 - "3:39" (3:39AM assumed)
1421 - "3:39" (3:39AM assumed)
1422 - "3:39pm" (15:39)
1422 - "3:39pm" (15:39)
1423 - "2006-12-06 13:18:29" (ISO 8601 format)
1423 - "2006-12-06 13:18:29" (ISO 8601 format)
1424 - "2006-12-6 13:18"
1424 - "2006-12-6 13:18"
1425 - "2006-12-6"
1425 - "2006-12-6"
1426 - "12-6"
1426 - "12-6"
1427 - "12/6"
1427 - "12/6"
1428 - "12/6/6" (Dec 6 2006)
1428 - "12/6/6" (Dec 6 2006)
1429 - "today" (midnight)
1429 - "today" (midnight)
1430 - "yesterday" (midnight)
1430 - "yesterday" (midnight)
1431 - "now" - right now
1431 - "now" - right now
1432
1432
1433 Lastly, there is Mercurial's internal format:
1433 Lastly, there is Mercurial's internal format:
1434
1434
1435 - "1165411109 0" (Wed Dec 6 13:18:29 2006 UTC)
1435 - "1165411109 0" (Wed Dec 6 13:18:29 2006 UTC)
1436
1436
1437 This is the internal representation format for dates. The first number is
1437 This is the internal representation format for dates. The first number is
1438 the number of seconds since the epoch (1970-01-01 00:00 UTC). The second
1438 the number of seconds since the epoch (1970-01-01 00:00 UTC). The second
1439 is the offset of the local timezone, in seconds west of UTC (negative if
1439 is the offset of the local timezone, in seconds west of UTC (negative if
1440 the timezone is east of UTC).
1440 the timezone is east of UTC).
1441
1441
1442 The log command also accepts date ranges:
1442 The log command also accepts date ranges:
1443
1443
1444 - "<DATE" - at or before a given date/time
1444 - "<DATE" - at or before a given date/time
1445 - ">DATE" - on or after a given date/time
1445 - ">DATE" - on or after a given date/time
1446 - "DATE to DATE" - a date range, inclusive
1446 - "DATE to DATE" - a date range, inclusive
1447 - "-DAYS" - within a given number of days of today
1447 - "-DAYS" - within a given number of days from today
1448
1448
1449 Test repeated config section name
1449 Test repeated config section name
1450
1450
1451 $ hg help config.host
1451 $ hg help config.host
1452 "http_proxy.host"
1452 "http_proxy.host"
1453 Host name and (optional) port of the proxy server, for example
1453 Host name and (optional) port of the proxy server, for example
1454 "myproxy:8000".
1454 "myproxy:8000".
1455
1455
1456 "smtp.host"
1456 "smtp.host"
1457 Host name of mail server, e.g. "mail.example.com".
1457 Host name of mail server, e.g. "mail.example.com".
1458
1458
1459
1459
1460 Test section name with dot
1460 Test section name with dot
1461
1461
1462 $ hg help config.ui.username
1462 $ hg help config.ui.username
1463 "ui.username"
1463 "ui.username"
1464 The committer of a changeset created when running "commit". Typically
1464 The committer of a changeset created when running "commit". Typically
1465 a person's name and email address, e.g. "Fred Widget
1465 a person's name and email address, e.g. "Fred Widget
1466 <fred@example.com>". Environment variables in the username are
1466 <fred@example.com>". Environment variables in the username are
1467 expanded.
1467 expanded.
1468
1468
1469 (default: "$EMAIL" or "username@hostname". If the username in hgrc is
1469 (default: "$EMAIL" or "username@hostname". If the username in hgrc is
1470 empty, e.g. if the system admin set "username =" in the system hgrc,
1470 empty, e.g. if the system admin set "username =" in the system hgrc,
1471 it has to be specified manually or in a different hgrc file)
1471 it has to be specified manually or in a different hgrc file)
1472
1472
1473
1473
1474 $ hg help config.annotate.git
1474 $ hg help config.annotate.git
1475 abort: help section not found: config.annotate.git
1475 abort: help section not found: config.annotate.git
1476 [255]
1476 [255]
1477
1477
1478 $ hg help config.update.check
1478 $ hg help config.update.check
1479 "commands.update.check"
1479 "commands.update.check"
1480 Determines what level of checking 'hg update' will perform before
1480 Determines what level of checking 'hg update' will perform before
1481 moving to a destination revision. Valid values are "abort", "none",
1481 moving to a destination revision. Valid values are "abort", "none",
1482 "linear", and "noconflict". "abort" always fails if the working
1482 "linear", and "noconflict". "abort" always fails if the working
1483 directory has uncommitted changes. "none" performs no checking, and
1483 directory has uncommitted changes. "none" performs no checking, and
1484 may result in a merge with uncommitted changes. "linear" allows any
1484 may result in a merge with uncommitted changes. "linear" allows any
1485 update as long as it follows a straight line in the revision history,
1485 update as long as it follows a straight line in the revision history,
1486 and may trigger a merge with uncommitted changes. "noconflict" will
1486 and may trigger a merge with uncommitted changes. "noconflict" will
1487 allow any update which would not trigger a merge with uncommitted
1487 allow any update which would not trigger a merge with uncommitted
1488 changes, if any are present. (default: "linear")
1488 changes, if any are present. (default: "linear")
1489
1489
1490
1490
1491 $ hg help config.commands.update.check
1491 $ hg help config.commands.update.check
1492 "commands.update.check"
1492 "commands.update.check"
1493 Determines what level of checking 'hg update' will perform before
1493 Determines what level of checking 'hg update' will perform before
1494 moving to a destination revision. Valid values are "abort", "none",
1494 moving to a destination revision. Valid values are "abort", "none",
1495 "linear", and "noconflict". "abort" always fails if the working
1495 "linear", and "noconflict". "abort" always fails if the working
1496 directory has uncommitted changes. "none" performs no checking, and
1496 directory has uncommitted changes. "none" performs no checking, and
1497 may result in a merge with uncommitted changes. "linear" allows any
1497 may result in a merge with uncommitted changes. "linear" allows any
1498 update as long as it follows a straight line in the revision history,
1498 update as long as it follows a straight line in the revision history,
1499 and may trigger a merge with uncommitted changes. "noconflict" will
1499 and may trigger a merge with uncommitted changes. "noconflict" will
1500 allow any update which would not trigger a merge with uncommitted
1500 allow any update which would not trigger a merge with uncommitted
1501 changes, if any are present. (default: "linear")
1501 changes, if any are present. (default: "linear")
1502
1502
1503
1503
1504 $ hg help config.ommands.update.check
1504 $ hg help config.ommands.update.check
1505 abort: help section not found: config.ommands.update.check
1505 abort: help section not found: config.ommands.update.check
1506 [255]
1506 [255]
1507
1507
1508 Unrelated trailing paragraphs shouldn't be included
1508 Unrelated trailing paragraphs shouldn't be included
1509
1509
1510 $ hg help config.extramsg | grep '^$'
1510 $ hg help config.extramsg | grep '^$'
1511
1511
1512
1512
1513 Test capitalized section name
1513 Test capitalized section name
1514
1514
1515 $ hg help scripting.HGPLAIN > /dev/null
1515 $ hg help scripting.HGPLAIN > /dev/null
1516
1516
1517 Help subsection:
1517 Help subsection:
1518
1518
1519 $ hg help config.charsets |grep "Email example:" > /dev/null
1519 $ hg help config.charsets |grep "Email example:" > /dev/null
1520 [1]
1520 [1]
1521
1521
1522 Show nested definitions
1522 Show nested definitions
1523 ("profiling.type"[break]"ls"[break]"stat"[break])
1523 ("profiling.type"[break]"ls"[break]"stat"[break])
1524
1524
1525 $ hg help config.type | egrep '^$'|wc -l
1525 $ hg help config.type | egrep '^$'|wc -l
1526 \s*3 (re)
1526 \s*3 (re)
1527
1527
1528 $ hg help config.profiling.type.ls
1528 $ hg help config.profiling.type.ls
1529 "profiling.type.ls"
1529 "profiling.type.ls"
1530 Use Python's built-in instrumenting profiler. This profiler works on
1530 Use Python's built-in instrumenting profiler. This profiler works on
1531 all platforms, but each line number it reports is the first line of
1531 all platforms, but each line number it reports is the first line of
1532 a function. This restriction makes it difficult to identify the
1532 a function. This restriction makes it difficult to identify the
1533 expensive parts of a non-trivial function.
1533 expensive parts of a non-trivial function.
1534
1534
1535
1535
1536 Separate sections from subsections
1536 Separate sections from subsections
1537
1537
1538 $ hg help config.format | egrep '^ ("|-)|^\s*$' | uniq
1538 $ hg help config.format | egrep '^ ("|-)|^\s*$' | uniq
1539 "format"
1539 "format"
1540 --------
1540 --------
1541
1541
1542 "usegeneraldelta"
1542 "usegeneraldelta"
1543
1543
1544 "dotencode"
1544 "dotencode"
1545
1545
1546 "usefncache"
1546 "usefncache"
1547
1547
1548 "usestore"
1548 "usestore"
1549
1549
1550 "sparse-revlog"
1550 "sparse-revlog"
1551
1551
1552 "revlog-compression"
1552 "revlog-compression"
1553
1553
1554 "bookmarks-in-store"
1554 "bookmarks-in-store"
1555
1555
1556 "profiling"
1556 "profiling"
1557 -----------
1557 -----------
1558
1558
1559 "format"
1559 "format"
1560
1560
1561 "progress"
1561 "progress"
1562 ----------
1562 ----------
1563
1563
1564 "format"
1564 "format"
1565
1565
1566
1566
1567 Last item in help config.*:
1567 Last item in help config.*:
1568
1568
1569 $ hg help config.`hg help config|grep '^ "'| \
1569 $ hg help config.`hg help config|grep '^ "'| \
1570 > tail -1|sed 's![ "]*!!g'`| \
1570 > tail -1|sed 's![ "]*!!g'`| \
1571 > grep 'hg help -c config' > /dev/null
1571 > grep 'hg help -c config' > /dev/null
1572 [1]
1572 [1]
1573
1573
1574 note to use help -c for general hg help config:
1574 note to use help -c for general hg help config:
1575
1575
1576 $ hg help config |grep 'hg help -c config' > /dev/null
1576 $ hg help config |grep 'hg help -c config' > /dev/null
1577
1577
1578 Test templating help
1578 Test templating help
1579
1579
1580 $ hg help templating | egrep '(desc|diffstat|firstline|nonempty) '
1580 $ hg help templating | egrep '(desc|diffstat|firstline|nonempty) '
1581 desc String. The text of the changeset description.
1581 desc String. The text of the changeset description.
1582 diffstat String. Statistics of changes with the following format:
1582 diffstat String. Statistics of changes with the following format:
1583 firstline Any text. Returns the first line of text.
1583 firstline Any text. Returns the first line of text.
1584 nonempty Any text. Returns '(none)' if the string is empty.
1584 nonempty Any text. Returns '(none)' if the string is empty.
1585
1585
1586 Test deprecated items
1586 Test deprecated items
1587
1587
1588 $ hg help -v templating | grep currentbookmark
1588 $ hg help -v templating | grep currentbookmark
1589 currentbookmark
1589 currentbookmark
1590 $ hg help templating | (grep currentbookmark || true)
1590 $ hg help templating | (grep currentbookmark || true)
1591
1591
1592 Test help hooks
1592 Test help hooks
1593
1593
1594 $ cat > helphook1.py <<EOF
1594 $ cat > helphook1.py <<EOF
1595 > from mercurial import help
1595 > from mercurial import help
1596 >
1596 >
1597 > def rewrite(ui, topic, doc):
1597 > def rewrite(ui, topic, doc):
1598 > return doc + b'\nhelphook1\n'
1598 > return doc + b'\nhelphook1\n'
1599 >
1599 >
1600 > def extsetup(ui):
1600 > def extsetup(ui):
1601 > help.addtopichook(b'revisions', rewrite)
1601 > help.addtopichook(b'revisions', rewrite)
1602 > EOF
1602 > EOF
1603 $ cat > helphook2.py <<EOF
1603 $ cat > helphook2.py <<EOF
1604 > from mercurial import help
1604 > from mercurial import help
1605 >
1605 >
1606 > def rewrite(ui, topic, doc):
1606 > def rewrite(ui, topic, doc):
1607 > return doc + b'\nhelphook2\n'
1607 > return doc + b'\nhelphook2\n'
1608 >
1608 >
1609 > def extsetup(ui):
1609 > def extsetup(ui):
1610 > help.addtopichook(b'revisions', rewrite)
1610 > help.addtopichook(b'revisions', rewrite)
1611 > EOF
1611 > EOF
1612 $ echo '[extensions]' >> $HGRCPATH
1612 $ echo '[extensions]' >> $HGRCPATH
1613 $ echo "helphook1 = `pwd`/helphook1.py" >> $HGRCPATH
1613 $ echo "helphook1 = `pwd`/helphook1.py" >> $HGRCPATH
1614 $ echo "helphook2 = `pwd`/helphook2.py" >> $HGRCPATH
1614 $ echo "helphook2 = `pwd`/helphook2.py" >> $HGRCPATH
1615 $ hg help revsets | grep helphook
1615 $ hg help revsets | grep helphook
1616 helphook1
1616 helphook1
1617 helphook2
1617 helphook2
1618
1618
1619 help -c should only show debug --debug
1619 help -c should only show debug --debug
1620
1620
1621 $ hg help -c --debug|egrep debug|wc -l|egrep '^\s*0\s*$'
1621 $ hg help -c --debug|egrep debug|wc -l|egrep '^\s*0\s*$'
1622 [1]
1622 [1]
1623
1623
1624 help -c should only show deprecated for -v
1624 help -c should only show deprecated for -v
1625
1625
1626 $ hg help -c -v|egrep DEPRECATED|wc -l|egrep '^\s*0\s*$'
1626 $ hg help -c -v|egrep DEPRECATED|wc -l|egrep '^\s*0\s*$'
1627 [1]
1627 [1]
1628
1628
1629 Test -s / --system
1629 Test -s / --system
1630
1630
1631 $ hg help config.files -s windows |grep 'etc/mercurial' | \
1631 $ hg help config.files -s windows |grep 'etc/mercurial' | \
1632 > wc -l | sed -e 's/ //g'
1632 > wc -l | sed -e 's/ //g'
1633 0
1633 0
1634 $ hg help config.files --system unix | grep 'USER' | \
1634 $ hg help config.files --system unix | grep 'USER' | \
1635 > wc -l | sed -e 's/ //g'
1635 > wc -l | sed -e 's/ //g'
1636 0
1636 0
1637
1637
1638 Test -e / -c / -k combinations
1638 Test -e / -c / -k combinations
1639
1639
1640 $ hg help -c|egrep '^[A-Z].*:|^ debug'
1640 $ hg help -c|egrep '^[A-Z].*:|^ debug'
1641 Commands:
1641 Commands:
1642 $ hg help -e|egrep '^[A-Z].*:|^ debug'
1642 $ hg help -e|egrep '^[A-Z].*:|^ debug'
1643 Extensions:
1643 Extensions:
1644 $ hg help -k|egrep '^[A-Z].*:|^ debug'
1644 $ hg help -k|egrep '^[A-Z].*:|^ debug'
1645 Topics:
1645 Topics:
1646 Commands:
1646 Commands:
1647 Extensions:
1647 Extensions:
1648 Extension Commands:
1648 Extension Commands:
1649 $ hg help -c schemes
1649 $ hg help -c schemes
1650 abort: no such help topic: schemes
1650 abort: no such help topic: schemes
1651 (try 'hg help --keyword schemes')
1651 (try 'hg help --keyword schemes')
1652 [255]
1652 [255]
1653 $ hg help -e schemes |head -1
1653 $ hg help -e schemes |head -1
1654 schemes extension - extend schemes with shortcuts to repository swarms
1654 schemes extension - extend schemes with shortcuts to repository swarms
1655 $ hg help -c -k dates |egrep '^(Topics|Extensions|Commands):'
1655 $ hg help -c -k dates |egrep '^(Topics|Extensions|Commands):'
1656 Commands:
1656 Commands:
1657 $ hg help -e -k a |egrep '^(Topics|Extensions|Commands):'
1657 $ hg help -e -k a |egrep '^(Topics|Extensions|Commands):'
1658 Extensions:
1658 Extensions:
1659 $ hg help -e -c -k date |egrep '^(Topics|Extensions|Commands):'
1659 $ hg help -e -c -k date |egrep '^(Topics|Extensions|Commands):'
1660 Extensions:
1660 Extensions:
1661 Commands:
1661 Commands:
1662 $ hg help -c commit > /dev/null
1662 $ hg help -c commit > /dev/null
1663 $ hg help -e -c commit > /dev/null
1663 $ hg help -e -c commit > /dev/null
1664 $ hg help -e commit
1664 $ hg help -e commit
1665 abort: no such help topic: commit
1665 abort: no such help topic: commit
1666 (try 'hg help --keyword commit')
1666 (try 'hg help --keyword commit')
1667 [255]
1667 [255]
1668
1668
1669 Test keyword search help
1669 Test keyword search help
1670
1670
1671 $ cat > prefixedname.py <<EOF
1671 $ cat > prefixedname.py <<EOF
1672 > '''matched against word "clone"
1672 > '''matched against word "clone"
1673 > '''
1673 > '''
1674 > EOF
1674 > EOF
1675 $ echo '[extensions]' >> $HGRCPATH
1675 $ echo '[extensions]' >> $HGRCPATH
1676 $ echo "dot.dot.prefixedname = `pwd`/prefixedname.py" >> $HGRCPATH
1676 $ echo "dot.dot.prefixedname = `pwd`/prefixedname.py" >> $HGRCPATH
1677 $ hg help -k clone
1677 $ hg help -k clone
1678 Topics:
1678 Topics:
1679
1679
1680 config Configuration Files
1680 config Configuration Files
1681 extensions Using Additional Features
1681 extensions Using Additional Features
1682 glossary Glossary
1682 glossary Glossary
1683 phases Working with Phases
1683 phases Working with Phases
1684 subrepos Subrepositories
1684 subrepos Subrepositories
1685 urls URL Paths
1685 urls URL Paths
1686
1686
1687 Commands:
1687 Commands:
1688
1688
1689 bookmarks create a new bookmark or list existing bookmarks
1689 bookmarks create a new bookmark or list existing bookmarks
1690 clone make a copy of an existing repository
1690 clone make a copy of an existing repository
1691 paths show aliases for remote repositories
1691 paths show aliases for remote repositories
1692 pull pull changes from the specified source
1692 pull pull changes from the specified source
1693 update update working directory (or switch revisions)
1693 update update working directory (or switch revisions)
1694
1694
1695 Extensions:
1695 Extensions:
1696
1696
1697 clonebundles advertise pre-generated bundles to seed clones
1697 clonebundles advertise pre-generated bundles to seed clones
1698 narrow create clones which fetch history data for subset of files
1698 narrow create clones which fetch history data for subset of files
1699 (EXPERIMENTAL)
1699 (EXPERIMENTAL)
1700 prefixedname matched against word "clone"
1700 prefixedname matched against word "clone"
1701 relink recreates hardlinks between repository clones
1701 relink recreates hardlinks between repository clones
1702
1702
1703 Extension Commands:
1703 Extension Commands:
1704
1704
1705 qclone clone main and patch repository at same time
1705 qclone clone main and patch repository at same time
1706
1706
1707 Test unfound topic
1707 Test unfound topic
1708
1708
1709 $ hg help nonexistingtopicthatwillneverexisteverever
1709 $ hg help nonexistingtopicthatwillneverexisteverever
1710 abort: no such help topic: nonexistingtopicthatwillneverexisteverever
1710 abort: no such help topic: nonexistingtopicthatwillneverexisteverever
1711 (try 'hg help --keyword nonexistingtopicthatwillneverexisteverever')
1711 (try 'hg help --keyword nonexistingtopicthatwillneverexisteverever')
1712 [255]
1712 [255]
1713
1713
1714 Test unfound keyword
1714 Test unfound keyword
1715
1715
1716 $ hg help --keyword nonexistingwordthatwillneverexisteverever
1716 $ hg help --keyword nonexistingwordthatwillneverexisteverever
1717 abort: no matches
1717 abort: no matches
1718 (try 'hg help' for a list of topics)
1718 (try 'hg help' for a list of topics)
1719 [255]
1719 [255]
1720
1720
1721 Test omit indicating for help
1721 Test omit indicating for help
1722
1722
1723 $ cat > addverboseitems.py <<EOF
1723 $ cat > addverboseitems.py <<EOF
1724 > r'''extension to test omit indicating.
1724 > r'''extension to test omit indicating.
1725 >
1725 >
1726 > This paragraph is never omitted (for extension)
1726 > This paragraph is never omitted (for extension)
1727 >
1727 >
1728 > .. container:: verbose
1728 > .. container:: verbose
1729 >
1729 >
1730 > This paragraph is omitted,
1730 > This paragraph is omitted,
1731 > if :hg:\`help\` is invoked without \`\`-v\`\` (for extension)
1731 > if :hg:\`help\` is invoked without \`\`-v\`\` (for extension)
1732 >
1732 >
1733 > This paragraph is never omitted, too (for extension)
1733 > This paragraph is never omitted, too (for extension)
1734 > '''
1734 > '''
1735 > from __future__ import absolute_import
1735 > from __future__ import absolute_import
1736 > from mercurial import commands, help
1736 > from mercurial import commands, help
1737 > testtopic = br"""This paragraph is never omitted (for topic).
1737 > testtopic = br"""This paragraph is never omitted (for topic).
1738 >
1738 >
1739 > .. container:: verbose
1739 > .. container:: verbose
1740 >
1740 >
1741 > This paragraph is omitted,
1741 > This paragraph is omitted,
1742 > if :hg:\`help\` is invoked without \`\`-v\`\` (for topic)
1742 > if :hg:\`help\` is invoked without \`\`-v\`\` (for topic)
1743 >
1743 >
1744 > This paragraph is never omitted, too (for topic)
1744 > This paragraph is never omitted, too (for topic)
1745 > """
1745 > """
1746 > def extsetup(ui):
1746 > def extsetup(ui):
1747 > help.helptable.append(([b"topic-containing-verbose"],
1747 > help.helptable.append(([b"topic-containing-verbose"],
1748 > b"This is the topic to test omit indicating.",
1748 > b"This is the topic to test omit indicating.",
1749 > lambda ui: testtopic))
1749 > lambda ui: testtopic))
1750 > EOF
1750 > EOF
1751 $ echo '[extensions]' >> $HGRCPATH
1751 $ echo '[extensions]' >> $HGRCPATH
1752 $ echo "addverboseitems = `pwd`/addverboseitems.py" >> $HGRCPATH
1752 $ echo "addverboseitems = `pwd`/addverboseitems.py" >> $HGRCPATH
1753 $ hg help addverboseitems
1753 $ hg help addverboseitems
1754 addverboseitems extension - extension to test omit indicating.
1754 addverboseitems extension - extension to test omit indicating.
1755
1755
1756 This paragraph is never omitted (for extension)
1756 This paragraph is never omitted (for extension)
1757
1757
1758 This paragraph is never omitted, too (for extension)
1758 This paragraph is never omitted, too (for extension)
1759
1759
1760 (some details hidden, use --verbose to show complete help)
1760 (some details hidden, use --verbose to show complete help)
1761
1761
1762 no commands defined
1762 no commands defined
1763 $ hg help -v addverboseitems
1763 $ hg help -v addverboseitems
1764 addverboseitems extension - extension to test omit indicating.
1764 addverboseitems extension - extension to test omit indicating.
1765
1765
1766 This paragraph is never omitted (for extension)
1766 This paragraph is never omitted (for extension)
1767
1767
1768 This paragraph is omitted, if 'hg help' is invoked without "-v" (for
1768 This paragraph is omitted, if 'hg help' is invoked without "-v" (for
1769 extension)
1769 extension)
1770
1770
1771 This paragraph is never omitted, too (for extension)
1771 This paragraph is never omitted, too (for extension)
1772
1772
1773 no commands defined
1773 no commands defined
1774 $ hg help topic-containing-verbose
1774 $ hg help topic-containing-verbose
1775 This is the topic to test omit indicating.
1775 This is the topic to test omit indicating.
1776 """"""""""""""""""""""""""""""""""""""""""
1776 """"""""""""""""""""""""""""""""""""""""""
1777
1777
1778 This paragraph is never omitted (for topic).
1778 This paragraph is never omitted (for topic).
1779
1779
1780 This paragraph is never omitted, too (for topic)
1780 This paragraph is never omitted, too (for topic)
1781
1781
1782 (some details hidden, use --verbose to show complete help)
1782 (some details hidden, use --verbose to show complete help)
1783 $ hg help -v topic-containing-verbose
1783 $ hg help -v topic-containing-verbose
1784 This is the topic to test omit indicating.
1784 This is the topic to test omit indicating.
1785 """"""""""""""""""""""""""""""""""""""""""
1785 """"""""""""""""""""""""""""""""""""""""""
1786
1786
1787 This paragraph is never omitted (for topic).
1787 This paragraph is never omitted (for topic).
1788
1788
1789 This paragraph is omitted, if 'hg help' is invoked without "-v" (for
1789 This paragraph is omitted, if 'hg help' is invoked without "-v" (for
1790 topic)
1790 topic)
1791
1791
1792 This paragraph is never omitted, too (for topic)
1792 This paragraph is never omitted, too (for topic)
1793
1793
1794 Test section lookup
1794 Test section lookup
1795
1795
1796 $ hg help revset.merge
1796 $ hg help revset.merge
1797 "merge()"
1797 "merge()"
1798 Changeset is a merge changeset.
1798 Changeset is a merge changeset.
1799
1799
1800 $ hg help glossary.dag
1800 $ hg help glossary.dag
1801 DAG
1801 DAG
1802 The repository of changesets of a distributed version control system
1802 The repository of changesets of a distributed version control system
1803 (DVCS) can be described as a directed acyclic graph (DAG), consisting
1803 (DVCS) can be described as a directed acyclic graph (DAG), consisting
1804 of nodes and edges, where nodes correspond to changesets and edges
1804 of nodes and edges, where nodes correspond to changesets and edges
1805 imply a parent -> child relation. This graph can be visualized by
1805 imply a parent -> child relation. This graph can be visualized by
1806 graphical tools such as 'hg log --graph'. In Mercurial, the DAG is
1806 graphical tools such as 'hg log --graph'. In Mercurial, the DAG is
1807 limited by the requirement for children to have at most two parents.
1807 limited by the requirement for children to have at most two parents.
1808
1808
1809
1809
1810 $ hg help hgrc.paths
1810 $ hg help hgrc.paths
1811 "paths"
1811 "paths"
1812 -------
1812 -------
1813
1813
1814 Assigns symbolic names and behavior to repositories.
1814 Assigns symbolic names and behavior to repositories.
1815
1815
1816 Options are symbolic names defining the URL or directory that is the
1816 Options are symbolic names defining the URL or directory that is the
1817 location of the repository. Example:
1817 location of the repository. Example:
1818
1818
1819 [paths]
1819 [paths]
1820 my_server = https://example.com/my_repo
1820 my_server = https://example.com/my_repo
1821 local_path = /home/me/repo
1821 local_path = /home/me/repo
1822
1822
1823 These symbolic names can be used from the command line. To pull from
1823 These symbolic names can be used from the command line. To pull from
1824 "my_server": 'hg pull my_server'. To push to "local_path": 'hg push
1824 "my_server": 'hg pull my_server'. To push to "local_path": 'hg push
1825 local_path'.
1825 local_path'.
1826
1826
1827 Options containing colons (":") denote sub-options that can influence
1827 Options containing colons (":") denote sub-options that can influence
1828 behavior for that specific path. Example:
1828 behavior for that specific path. Example:
1829
1829
1830 [paths]
1830 [paths]
1831 my_server = https://example.com/my_path
1831 my_server = https://example.com/my_path
1832 my_server:pushurl = ssh://example.com/my_path
1832 my_server:pushurl = ssh://example.com/my_path
1833
1833
1834 The following sub-options can be defined:
1834 The following sub-options can be defined:
1835
1835
1836 "pushurl"
1836 "pushurl"
1837 The URL to use for push operations. If not defined, the location
1837 The URL to use for push operations. If not defined, the location
1838 defined by the path's main entry is used.
1838 defined by the path's main entry is used.
1839
1839
1840 "pushrev"
1840 "pushrev"
1841 A revset defining which revisions to push by default.
1841 A revset defining which revisions to push by default.
1842
1842
1843 When 'hg push' is executed without a "-r" argument, the revset defined
1843 When 'hg push' is executed without a "-r" argument, the revset defined
1844 by this sub-option is evaluated to determine what to push.
1844 by this sub-option is evaluated to determine what to push.
1845
1845
1846 For example, a value of "." will push the working directory's revision
1846 For example, a value of "." will push the working directory's revision
1847 by default.
1847 by default.
1848
1848
1849 Revsets specifying bookmarks will not result in the bookmark being
1849 Revsets specifying bookmarks will not result in the bookmark being
1850 pushed.
1850 pushed.
1851
1851
1852 The following special named paths exist:
1852 The following special named paths exist:
1853
1853
1854 "default"
1854 "default"
1855 The URL or directory to use when no source or remote is specified.
1855 The URL or directory to use when no source or remote is specified.
1856
1856
1857 'hg clone' will automatically define this path to the location the
1857 'hg clone' will automatically define this path to the location the
1858 repository was cloned from.
1858 repository was cloned from.
1859
1859
1860 "default-push"
1860 "default-push"
1861 (deprecated) The URL or directory for the default 'hg push' location.
1861 (deprecated) The URL or directory for the default 'hg push' location.
1862 "default:pushurl" should be used instead.
1862 "default:pushurl" should be used instead.
1863
1863
1864 $ hg help glossary.mcguffin
1864 $ hg help glossary.mcguffin
1865 abort: help section not found: glossary.mcguffin
1865 abort: help section not found: glossary.mcguffin
1866 [255]
1866 [255]
1867
1867
1868 $ hg help glossary.mc.guffin
1868 $ hg help glossary.mc.guffin
1869 abort: help section not found: glossary.mc.guffin
1869 abort: help section not found: glossary.mc.guffin
1870 [255]
1870 [255]
1871
1871
1872 $ hg help template.files
1872 $ hg help template.files
1873 files List of strings. All files modified, added, or removed by
1873 files List of strings. All files modified, added, or removed by
1874 this changeset.
1874 this changeset.
1875 files(pattern)
1875 files(pattern)
1876 All files of the current changeset matching the pattern. See
1876 All files of the current changeset matching the pattern. See
1877 'hg help patterns'.
1877 'hg help patterns'.
1878
1878
1879 Test section lookup by translated message
1879 Test section lookup by translated message
1880
1880
1881 str.lower() instead of encoding.lower(str) on translated message might
1881 str.lower() instead of encoding.lower(str) on translated message might
1882 make message meaningless, because some encoding uses 0x41(A) - 0x5a(Z)
1882 make message meaningless, because some encoding uses 0x41(A) - 0x5a(Z)
1883 as the second or later byte of multi-byte character.
1883 as the second or later byte of multi-byte character.
1884
1884
1885 For example, "\x8bL\x98^" (translation of "record" in ja_JP.cp932)
1885 For example, "\x8bL\x98^" (translation of "record" in ja_JP.cp932)
1886 contains 0x4c (L). str.lower() replaces 0x4c(L) by 0x6c(l) and this
1886 contains 0x4c (L). str.lower() replaces 0x4c(L) by 0x6c(l) and this
1887 replacement makes message meaningless.
1887 replacement makes message meaningless.
1888
1888
1889 This tests that section lookup by translated string isn't broken by
1889 This tests that section lookup by translated string isn't broken by
1890 such str.lower().
1890 such str.lower().
1891
1891
1892 $ "$PYTHON" <<EOF
1892 $ "$PYTHON" <<EOF
1893 > def escape(s):
1893 > def escape(s):
1894 > return b''.join(b'\\u%x' % ord(uc) for uc in s.decode('cp932'))
1894 > return b''.join(b'\\u%x' % ord(uc) for uc in s.decode('cp932'))
1895 > # translation of "record" in ja_JP.cp932
1895 > # translation of "record" in ja_JP.cp932
1896 > upper = b"\x8bL\x98^"
1896 > upper = b"\x8bL\x98^"
1897 > # str.lower()-ed section name should be treated as different one
1897 > # str.lower()-ed section name should be treated as different one
1898 > lower = b"\x8bl\x98^"
1898 > lower = b"\x8bl\x98^"
1899 > with open('ambiguous.py', 'wb') as fp:
1899 > with open('ambiguous.py', 'wb') as fp:
1900 > fp.write(b"""# ambiguous section names in ja_JP.cp932
1900 > fp.write(b"""# ambiguous section names in ja_JP.cp932
1901 > u'''summary of extension
1901 > u'''summary of extension
1902 >
1902 >
1903 > %s
1903 > %s
1904 > ----
1904 > ----
1905 >
1905 >
1906 > Upper name should show only this message
1906 > Upper name should show only this message
1907 >
1907 >
1908 > %s
1908 > %s
1909 > ----
1909 > ----
1910 >
1910 >
1911 > Lower name should show only this message
1911 > Lower name should show only this message
1912 >
1912 >
1913 > subsequent section
1913 > subsequent section
1914 > ------------------
1914 > ------------------
1915 >
1915 >
1916 > This should be hidden at 'hg help ambiguous' with section name.
1916 > This should be hidden at 'hg help ambiguous' with section name.
1917 > '''
1917 > '''
1918 > """ % (escape(upper), escape(lower)))
1918 > """ % (escape(upper), escape(lower)))
1919 > EOF
1919 > EOF
1920
1920
1921 $ cat >> $HGRCPATH <<EOF
1921 $ cat >> $HGRCPATH <<EOF
1922 > [extensions]
1922 > [extensions]
1923 > ambiguous = ./ambiguous.py
1923 > ambiguous = ./ambiguous.py
1924 > EOF
1924 > EOF
1925
1925
1926 $ "$PYTHON" <<EOF | sh
1926 $ "$PYTHON" <<EOF | sh
1927 > from mercurial.utils import procutil
1927 > from mercurial.utils import procutil
1928 > upper = b"\x8bL\x98^"
1928 > upper = b"\x8bL\x98^"
1929 > procutil.stdout.write(b"hg --encoding cp932 help -e ambiguous.%s\n" % upper)
1929 > procutil.stdout.write(b"hg --encoding cp932 help -e ambiguous.%s\n" % upper)
1930 > EOF
1930 > EOF
1931 \x8bL\x98^ (esc)
1931 \x8bL\x98^ (esc)
1932 ----
1932 ----
1933
1933
1934 Upper name should show only this message
1934 Upper name should show only this message
1935
1935
1936
1936
1937 $ "$PYTHON" <<EOF | sh
1937 $ "$PYTHON" <<EOF | sh
1938 > from mercurial.utils import procutil
1938 > from mercurial.utils import procutil
1939 > lower = b"\x8bl\x98^"
1939 > lower = b"\x8bl\x98^"
1940 > procutil.stdout.write(b"hg --encoding cp932 help -e ambiguous.%s\n" % lower)
1940 > procutil.stdout.write(b"hg --encoding cp932 help -e ambiguous.%s\n" % lower)
1941 > EOF
1941 > EOF
1942 \x8bl\x98^ (esc)
1942 \x8bl\x98^ (esc)
1943 ----
1943 ----
1944
1944
1945 Lower name should show only this message
1945 Lower name should show only this message
1946
1946
1947
1947
1948 $ cat >> $HGRCPATH <<EOF
1948 $ cat >> $HGRCPATH <<EOF
1949 > [extensions]
1949 > [extensions]
1950 > ambiguous = !
1950 > ambiguous = !
1951 > EOF
1951 > EOF
1952
1952
1953 Show help content of disabled extensions
1953 Show help content of disabled extensions
1954
1954
1955 $ cat >> $HGRCPATH <<EOF
1955 $ cat >> $HGRCPATH <<EOF
1956 > [extensions]
1956 > [extensions]
1957 > ambiguous = !./ambiguous.py
1957 > ambiguous = !./ambiguous.py
1958 > EOF
1958 > EOF
1959 $ hg help -e ambiguous
1959 $ hg help -e ambiguous
1960 ambiguous extension - (no help text available)
1960 ambiguous extension - (no help text available)
1961
1961
1962 (use 'hg help extensions' for information on enabling extensions)
1962 (use 'hg help extensions' for information on enabling extensions)
1963
1963
1964 Test dynamic list of merge tools only shows up once
1964 Test dynamic list of merge tools only shows up once
1965 $ hg help merge-tools
1965 $ hg help merge-tools
1966 Merge Tools
1966 Merge Tools
1967 """""""""""
1967 """""""""""
1968
1968
1969 To merge files Mercurial uses merge tools.
1969 To merge files Mercurial uses merge tools.
1970
1970
1971 A merge tool combines two different versions of a file into a merged file.
1971 A merge tool combines two different versions of a file into a merged file.
1972 Merge tools are given the two files and the greatest common ancestor of
1972 Merge tools are given the two files and the greatest common ancestor of
1973 the two file versions, so they can determine the changes made on both
1973 the two file versions, so they can determine the changes made on both
1974 branches.
1974 branches.
1975
1975
1976 Merge tools are used both for 'hg resolve', 'hg merge', 'hg update', 'hg
1976 Merge tools are used both for 'hg resolve', 'hg merge', 'hg update', 'hg
1977 backout' and in several extensions.
1977 backout' and in several extensions.
1978
1978
1979 Usually, the merge tool tries to automatically reconcile the files by
1979 Usually, the merge tool tries to automatically reconcile the files by
1980 combining all non-overlapping changes that occurred separately in the two
1980 combining all non-overlapping changes that occurred separately in the two
1981 different evolutions of the same initial base file. Furthermore, some
1981 different evolutions of the same initial base file. Furthermore, some
1982 interactive merge programs make it easier to manually resolve conflicting
1982 interactive merge programs make it easier to manually resolve conflicting
1983 merges, either in a graphical way, or by inserting some conflict markers.
1983 merges, either in a graphical way, or by inserting some conflict markers.
1984 Mercurial does not include any interactive merge programs but relies on
1984 Mercurial does not include any interactive merge programs but relies on
1985 external tools for that.
1985 external tools for that.
1986
1986
1987 Available merge tools
1987 Available merge tools
1988 =====================
1988 =====================
1989
1989
1990 External merge tools and their properties are configured in the merge-
1990 External merge tools and their properties are configured in the merge-
1991 tools configuration section - see hgrc(5) - but they can often just be
1991 tools configuration section - see hgrc(5) - but they can often just be
1992 named by their executable.
1992 named by their executable.
1993
1993
1994 A merge tool is generally usable if its executable can be found on the
1994 A merge tool is generally usable if its executable can be found on the
1995 system and if it can handle the merge. The executable is found if it is an
1995 system and if it can handle the merge. The executable is found if it is an
1996 absolute or relative executable path or the name of an application in the
1996 absolute or relative executable path or the name of an application in the
1997 executable search path. The tool is assumed to be able to handle the merge
1997 executable search path. The tool is assumed to be able to handle the merge
1998 if it can handle symlinks if the file is a symlink, if it can handle
1998 if it can handle symlinks if the file is a symlink, if it can handle
1999 binary files if the file is binary, and if a GUI is available if the tool
1999 binary files if the file is binary, and if a GUI is available if the tool
2000 requires a GUI.
2000 requires a GUI.
2001
2001
2002 There are some internal merge tools which can be used. The internal merge
2002 There are some internal merge tools which can be used. The internal merge
2003 tools are:
2003 tools are:
2004
2004
2005 ":dump"
2005 ":dump"
2006 Creates three versions of the files to merge, containing the contents of
2006 Creates three versions of the files to merge, containing the contents of
2007 local, other and base. These files can then be used to perform a merge
2007 local, other and base. These files can then be used to perform a merge
2008 manually. If the file to be merged is named "a.txt", these files will
2008 manually. If the file to be merged is named "a.txt", these files will
2009 accordingly be named "a.txt.local", "a.txt.other" and "a.txt.base" and
2009 accordingly be named "a.txt.local", "a.txt.other" and "a.txt.base" and
2010 they will be placed in the same directory as "a.txt".
2010 they will be placed in the same directory as "a.txt".
2011
2011
2012 This implies premerge. Therefore, files aren't dumped, if premerge runs
2012 This implies premerge. Therefore, files aren't dumped, if premerge runs
2013 successfully. Use :forcedump to forcibly write files out.
2013 successfully. Use :forcedump to forcibly write files out.
2014
2014
2015 (actual capabilities: binary, symlink)
2015 (actual capabilities: binary, symlink)
2016
2016
2017 ":fail"
2017 ":fail"
2018 Rather than attempting to merge files that were modified on both
2018 Rather than attempting to merge files that were modified on both
2019 branches, it marks them as unresolved. The resolve command must be used
2019 branches, it marks them as unresolved. The resolve command must be used
2020 to resolve these conflicts.
2020 to resolve these conflicts.
2021
2021
2022 (actual capabilities: binary, symlink)
2022 (actual capabilities: binary, symlink)
2023
2023
2024 ":forcedump"
2024 ":forcedump"
2025 Creates three versions of the files as same as :dump, but omits
2025 Creates three versions of the files as same as :dump, but omits
2026 premerge.
2026 premerge.
2027
2027
2028 (actual capabilities: binary, symlink)
2028 (actual capabilities: binary, symlink)
2029
2029
2030 ":local"
2030 ":local"
2031 Uses the local 'p1()' version of files as the merged version.
2031 Uses the local 'p1()' version of files as the merged version.
2032
2032
2033 (actual capabilities: binary, symlink)
2033 (actual capabilities: binary, symlink)
2034
2034
2035 ":merge"
2035 ":merge"
2036 Uses the internal non-interactive simple merge algorithm for merging
2036 Uses the internal non-interactive simple merge algorithm for merging
2037 files. It will fail if there are any conflicts and leave markers in the
2037 files. It will fail if there are any conflicts and leave markers in the
2038 partially merged file. Markers will have two sections, one for each side
2038 partially merged file. Markers will have two sections, one for each side
2039 of merge.
2039 of merge.
2040
2040
2041 ":merge-local"
2041 ":merge-local"
2042 Like :merge, but resolve all conflicts non-interactively in favor of the
2042 Like :merge, but resolve all conflicts non-interactively in favor of the
2043 local 'p1()' changes.
2043 local 'p1()' changes.
2044
2044
2045 ":merge-other"
2045 ":merge-other"
2046 Like :merge, but resolve all conflicts non-interactively in favor of the
2046 Like :merge, but resolve all conflicts non-interactively in favor of the
2047 other 'p2()' changes.
2047 other 'p2()' changes.
2048
2048
2049 ":merge3"
2049 ":merge3"
2050 Uses the internal non-interactive simple merge algorithm for merging
2050 Uses the internal non-interactive simple merge algorithm for merging
2051 files. It will fail if there are any conflicts and leave markers in the
2051 files. It will fail if there are any conflicts and leave markers in the
2052 partially merged file. Marker will have three sections, one from each
2052 partially merged file. Marker will have three sections, one from each
2053 side of the merge and one for the base content.
2053 side of the merge and one for the base content.
2054
2054
2055 ":other"
2055 ":other"
2056 Uses the other 'p2()' version of files as the merged version.
2056 Uses the other 'p2()' version of files as the merged version.
2057
2057
2058 (actual capabilities: binary, symlink)
2058 (actual capabilities: binary, symlink)
2059
2059
2060 ":prompt"
2060 ":prompt"
2061 Asks the user which of the local 'p1()' or the other 'p2()' version to
2061 Asks the user which of the local 'p1()' or the other 'p2()' version to
2062 keep as the merged version.
2062 keep as the merged version.
2063
2063
2064 (actual capabilities: binary, symlink)
2064 (actual capabilities: binary, symlink)
2065
2065
2066 ":tagmerge"
2066 ":tagmerge"
2067 Uses the internal tag merge algorithm (experimental).
2067 Uses the internal tag merge algorithm (experimental).
2068
2068
2069 ":union"
2069 ":union"
2070 Uses the internal non-interactive simple merge algorithm for merging
2070 Uses the internal non-interactive simple merge algorithm for merging
2071 files. It will use both left and right sides for conflict regions. No
2071 files. It will use both left and right sides for conflict regions. No
2072 markers are inserted.
2072 markers are inserted.
2073
2073
2074 Internal tools are always available and do not require a GUI but will by
2074 Internal tools are always available and do not require a GUI but will by
2075 default not handle symlinks or binary files. See next section for detail
2075 default not handle symlinks or binary files. See next section for detail
2076 about "actual capabilities" described above.
2076 about "actual capabilities" described above.
2077
2077
2078 Choosing a merge tool
2078 Choosing a merge tool
2079 =====================
2079 =====================
2080
2080
2081 Mercurial uses these rules when deciding which merge tool to use:
2081 Mercurial uses these rules when deciding which merge tool to use:
2082
2082
2083 1. If a tool has been specified with the --tool option to merge or
2083 1. If a tool has been specified with the --tool option to merge or
2084 resolve, it is used. If it is the name of a tool in the merge-tools
2084 resolve, it is used. If it is the name of a tool in the merge-tools
2085 configuration, its configuration is used. Otherwise the specified tool
2085 configuration, its configuration is used. Otherwise the specified tool
2086 must be executable by the shell.
2086 must be executable by the shell.
2087 2. If the "HGMERGE" environment variable is present, its value is used and
2087 2. If the "HGMERGE" environment variable is present, its value is used and
2088 must be executable by the shell.
2088 must be executable by the shell.
2089 3. If the filename of the file to be merged matches any of the patterns in
2089 3. If the filename of the file to be merged matches any of the patterns in
2090 the merge-patterns configuration section, the first usable merge tool
2090 the merge-patterns configuration section, the first usable merge tool
2091 corresponding to a matching pattern is used.
2091 corresponding to a matching pattern is used.
2092 4. If ui.merge is set it will be considered next. If the value is not the
2092 4. If ui.merge is set it will be considered next. If the value is not the
2093 name of a configured tool, the specified value is used and must be
2093 name of a configured tool, the specified value is used and must be
2094 executable by the shell. Otherwise the named tool is used if it is
2094 executable by the shell. Otherwise the named tool is used if it is
2095 usable.
2095 usable.
2096 5. If any usable merge tools are present in the merge-tools configuration
2096 5. If any usable merge tools are present in the merge-tools configuration
2097 section, the one with the highest priority is used.
2097 section, the one with the highest priority is used.
2098 6. If a program named "hgmerge" can be found on the system, it is used -
2098 6. If a program named "hgmerge" can be found on the system, it is used -
2099 but it will by default not be used for symlinks and binary files.
2099 but it will by default not be used for symlinks and binary files.
2100 7. If the file to be merged is not binary and is not a symlink, then
2100 7. If the file to be merged is not binary and is not a symlink, then
2101 internal ":merge" is used.
2101 internal ":merge" is used.
2102 8. Otherwise, ":prompt" is used.
2102 8. Otherwise, ":prompt" is used.
2103
2103
2104 For historical reason, Mercurial treats merge tools as below while
2104 For historical reason, Mercurial treats merge tools as below while
2105 examining rules above.
2105 examining rules above.
2106
2106
2107 step specified via binary symlink
2107 step specified via binary symlink
2108 ----------------------------------
2108 ----------------------------------
2109 1. --tool o/o o/o
2109 1. --tool o/o o/o
2110 2. HGMERGE o/o o/o
2110 2. HGMERGE o/o o/o
2111 3. merge-patterns o/o(*) x/?(*)
2111 3. merge-patterns o/o(*) x/?(*)
2112 4. ui.merge x/?(*) x/?(*)
2112 4. ui.merge x/?(*) x/?(*)
2113
2113
2114 Each capability column indicates Mercurial behavior for internal/external
2114 Each capability column indicates Mercurial behavior for internal/external
2115 merge tools at examining each rule.
2115 merge tools at examining each rule.
2116
2116
2117 - "o": "assume that a tool has capability"
2117 - "o": "assume that a tool has capability"
2118 - "x": "assume that a tool does not have capability"
2118 - "x": "assume that a tool does not have capability"
2119 - "?": "check actual capability of a tool"
2119 - "?": "check actual capability of a tool"
2120
2120
2121 If "merge.strict-capability-check" configuration is true, Mercurial checks
2121 If "merge.strict-capability-check" configuration is true, Mercurial checks
2122 capabilities of merge tools strictly in (*) cases above (= each capability
2122 capabilities of merge tools strictly in (*) cases above (= each capability
2123 column becomes "?/?"). It is false by default for backward compatibility.
2123 column becomes "?/?"). It is false by default for backward compatibility.
2124
2124
2125 Note:
2125 Note:
2126 After selecting a merge program, Mercurial will by default attempt to
2126 After selecting a merge program, Mercurial will by default attempt to
2127 merge the files using a simple merge algorithm first. Only if it
2127 merge the files using a simple merge algorithm first. Only if it
2128 doesn't succeed because of conflicting changes will Mercurial actually
2128 doesn't succeed because of conflicting changes will Mercurial actually
2129 execute the merge program. Whether to use the simple merge algorithm
2129 execute the merge program. Whether to use the simple merge algorithm
2130 first can be controlled by the premerge setting of the merge tool.
2130 first can be controlled by the premerge setting of the merge tool.
2131 Premerge is enabled by default unless the file is binary or a symlink.
2131 Premerge is enabled by default unless the file is binary or a symlink.
2132
2132
2133 See the merge-tools and ui sections of hgrc(5) for details on the
2133 See the merge-tools and ui sections of hgrc(5) for details on the
2134 configuration of merge tools.
2134 configuration of merge tools.
2135
2135
2136 Compression engines listed in `hg help bundlespec`
2136 Compression engines listed in `hg help bundlespec`
2137
2137
2138 $ hg help bundlespec | grep gzip
2138 $ hg help bundlespec | grep gzip
2139 "v1" bundles can only use the "gzip", "bzip2", and "none" compression
2139 "v1" bundles can only use the "gzip", "bzip2", and "none" compression
2140 An algorithm that produces smaller bundles than "gzip".
2140 An algorithm that produces smaller bundles than "gzip".
2141 This engine will likely produce smaller bundles than "gzip" but will be
2141 This engine will likely produce smaller bundles than "gzip" but will be
2142 "gzip"
2142 "gzip"
2143 better compression than "gzip". It also frequently yields better (?)
2143 better compression than "gzip". It also frequently yields better (?)
2144
2144
2145 Test usage of section marks in help documents
2145 Test usage of section marks in help documents
2146
2146
2147 $ cd "$TESTDIR"/../doc
2147 $ cd "$TESTDIR"/../doc
2148 $ "$PYTHON" check-seclevel.py
2148 $ "$PYTHON" check-seclevel.py
2149 $ cd $TESTTMP
2149 $ cd $TESTTMP
2150
2150
2151 #if serve
2151 #if serve
2152
2152
2153 Test the help pages in hgweb.
2153 Test the help pages in hgweb.
2154
2154
2155 Dish up an empty repo; serve it cold.
2155 Dish up an empty repo; serve it cold.
2156
2156
2157 $ hg init "$TESTTMP/test"
2157 $ hg init "$TESTTMP/test"
2158 $ hg serve -R "$TESTTMP/test" -n test -p $HGPORT -d --pid-file=hg.pid
2158 $ hg serve -R "$TESTTMP/test" -n test -p $HGPORT -d --pid-file=hg.pid
2159 $ cat hg.pid >> $DAEMON_PIDS
2159 $ cat hg.pid >> $DAEMON_PIDS
2160
2160
2161 $ get-with-headers.py $LOCALIP:$HGPORT "help"
2161 $ get-with-headers.py $LOCALIP:$HGPORT "help"
2162 200 Script output follows
2162 200 Script output follows
2163
2163
2164 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2164 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2165 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
2165 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
2166 <head>
2166 <head>
2167 <link rel="icon" href="/static/hgicon.png" type="image/png" />
2167 <link rel="icon" href="/static/hgicon.png" type="image/png" />
2168 <meta name="robots" content="index, nofollow" />
2168 <meta name="robots" content="index, nofollow" />
2169 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
2169 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
2170 <script type="text/javascript" src="/static/mercurial.js"></script>
2170 <script type="text/javascript" src="/static/mercurial.js"></script>
2171
2171
2172 <title>Help: Index</title>
2172 <title>Help: Index</title>
2173 </head>
2173 </head>
2174 <body>
2174 <body>
2175
2175
2176 <div class="container">
2176 <div class="container">
2177 <div class="menu">
2177 <div class="menu">
2178 <div class="logo">
2178 <div class="logo">
2179 <a href="https://mercurial-scm.org/">
2179 <a href="https://mercurial-scm.org/">
2180 <img src="/static/hglogo.png" alt="mercurial" /></a>
2180 <img src="/static/hglogo.png" alt="mercurial" /></a>
2181 </div>
2181 </div>
2182 <ul>
2182 <ul>
2183 <li><a href="/shortlog">log</a></li>
2183 <li><a href="/shortlog">log</a></li>
2184 <li><a href="/graph">graph</a></li>
2184 <li><a href="/graph">graph</a></li>
2185 <li><a href="/tags">tags</a></li>
2185 <li><a href="/tags">tags</a></li>
2186 <li><a href="/bookmarks">bookmarks</a></li>
2186 <li><a href="/bookmarks">bookmarks</a></li>
2187 <li><a href="/branches">branches</a></li>
2187 <li><a href="/branches">branches</a></li>
2188 </ul>
2188 </ul>
2189 <ul>
2189 <ul>
2190 <li class="active">help</li>
2190 <li class="active">help</li>
2191 </ul>
2191 </ul>
2192 </div>
2192 </div>
2193
2193
2194 <div class="main">
2194 <div class="main">
2195 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
2195 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
2196
2196
2197 <form class="search" action="/log">
2197 <form class="search" action="/log">
2198
2198
2199 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
2199 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
2200 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
2200 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
2201 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
2201 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
2202 </form>
2202 </form>
2203 <table class="bigtable">
2203 <table class="bigtable">
2204 <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr>
2204 <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr>
2205
2205
2206 <tr><td>
2206 <tr><td>
2207 <a href="/help/bundlespec">
2207 <a href="/help/bundlespec">
2208 bundlespec
2208 bundlespec
2209 </a>
2209 </a>
2210 </td><td>
2210 </td><td>
2211 Bundle File Formats
2211 Bundle File Formats
2212 </td></tr>
2212 </td></tr>
2213 <tr><td>
2213 <tr><td>
2214 <a href="/help/color">
2214 <a href="/help/color">
2215 color
2215 color
2216 </a>
2216 </a>
2217 </td><td>
2217 </td><td>
2218 Colorizing Outputs
2218 Colorizing Outputs
2219 </td></tr>
2219 </td></tr>
2220 <tr><td>
2220 <tr><td>
2221 <a href="/help/config">
2221 <a href="/help/config">
2222 config
2222 config
2223 </a>
2223 </a>
2224 </td><td>
2224 </td><td>
2225 Configuration Files
2225 Configuration Files
2226 </td></tr>
2226 </td></tr>
2227 <tr><td>
2227 <tr><td>
2228 <a href="/help/dates">
2228 <a href="/help/dates">
2229 dates
2229 dates
2230 </a>
2230 </a>
2231 </td><td>
2231 </td><td>
2232 Date Formats
2232 Date Formats
2233 </td></tr>
2233 </td></tr>
2234 <tr><td>
2234 <tr><td>
2235 <a href="/help/deprecated">
2235 <a href="/help/deprecated">
2236 deprecated
2236 deprecated
2237 </a>
2237 </a>
2238 </td><td>
2238 </td><td>
2239 Deprecated Features
2239 Deprecated Features
2240 </td></tr>
2240 </td></tr>
2241 <tr><td>
2241 <tr><td>
2242 <a href="/help/diffs">
2242 <a href="/help/diffs">
2243 diffs
2243 diffs
2244 </a>
2244 </a>
2245 </td><td>
2245 </td><td>
2246 Diff Formats
2246 Diff Formats
2247 </td></tr>
2247 </td></tr>
2248 <tr><td>
2248 <tr><td>
2249 <a href="/help/environment">
2249 <a href="/help/environment">
2250 environment
2250 environment
2251 </a>
2251 </a>
2252 </td><td>
2252 </td><td>
2253 Environment Variables
2253 Environment Variables
2254 </td></tr>
2254 </td></tr>
2255 <tr><td>
2255 <tr><td>
2256 <a href="/help/extensions">
2256 <a href="/help/extensions">
2257 extensions
2257 extensions
2258 </a>
2258 </a>
2259 </td><td>
2259 </td><td>
2260 Using Additional Features
2260 Using Additional Features
2261 </td></tr>
2261 </td></tr>
2262 <tr><td>
2262 <tr><td>
2263 <a href="/help/filesets">
2263 <a href="/help/filesets">
2264 filesets
2264 filesets
2265 </a>
2265 </a>
2266 </td><td>
2266 </td><td>
2267 Specifying File Sets
2267 Specifying File Sets
2268 </td></tr>
2268 </td></tr>
2269 <tr><td>
2269 <tr><td>
2270 <a href="/help/flags">
2270 <a href="/help/flags">
2271 flags
2271 flags
2272 </a>
2272 </a>
2273 </td><td>
2273 </td><td>
2274 Command-line flags
2274 Command-line flags
2275 </td></tr>
2275 </td></tr>
2276 <tr><td>
2276 <tr><td>
2277 <a href="/help/glossary">
2277 <a href="/help/glossary">
2278 glossary
2278 glossary
2279 </a>
2279 </a>
2280 </td><td>
2280 </td><td>
2281 Glossary
2281 Glossary
2282 </td></tr>
2282 </td></tr>
2283 <tr><td>
2283 <tr><td>
2284 <a href="/help/hgignore">
2284 <a href="/help/hgignore">
2285 hgignore
2285 hgignore
2286 </a>
2286 </a>
2287 </td><td>
2287 </td><td>
2288 Syntax for Mercurial Ignore Files
2288 Syntax for Mercurial Ignore Files
2289 </td></tr>
2289 </td></tr>
2290 <tr><td>
2290 <tr><td>
2291 <a href="/help/hgweb">
2291 <a href="/help/hgweb">
2292 hgweb
2292 hgweb
2293 </a>
2293 </a>
2294 </td><td>
2294 </td><td>
2295 Configuring hgweb
2295 Configuring hgweb
2296 </td></tr>
2296 </td></tr>
2297 <tr><td>
2297 <tr><td>
2298 <a href="/help/internals">
2298 <a href="/help/internals">
2299 internals
2299 internals
2300 </a>
2300 </a>
2301 </td><td>
2301 </td><td>
2302 Technical implementation topics
2302 Technical implementation topics
2303 </td></tr>
2303 </td></tr>
2304 <tr><td>
2304 <tr><td>
2305 <a href="/help/merge-tools">
2305 <a href="/help/merge-tools">
2306 merge-tools
2306 merge-tools
2307 </a>
2307 </a>
2308 </td><td>
2308 </td><td>
2309 Merge Tools
2309 Merge Tools
2310 </td></tr>
2310 </td></tr>
2311 <tr><td>
2311 <tr><td>
2312 <a href="/help/pager">
2312 <a href="/help/pager">
2313 pager
2313 pager
2314 </a>
2314 </a>
2315 </td><td>
2315 </td><td>
2316 Pager Support
2316 Pager Support
2317 </td></tr>
2317 </td></tr>
2318 <tr><td>
2318 <tr><td>
2319 <a href="/help/patterns">
2319 <a href="/help/patterns">
2320 patterns
2320 patterns
2321 </a>
2321 </a>
2322 </td><td>
2322 </td><td>
2323 File Name Patterns
2323 File Name Patterns
2324 </td></tr>
2324 </td></tr>
2325 <tr><td>
2325 <tr><td>
2326 <a href="/help/phases">
2326 <a href="/help/phases">
2327 phases
2327 phases
2328 </a>
2328 </a>
2329 </td><td>
2329 </td><td>
2330 Working with Phases
2330 Working with Phases
2331 </td></tr>
2331 </td></tr>
2332 <tr><td>
2332 <tr><td>
2333 <a href="/help/revisions">
2333 <a href="/help/revisions">
2334 revisions
2334 revisions
2335 </a>
2335 </a>
2336 </td><td>
2336 </td><td>
2337 Specifying Revisions
2337 Specifying Revisions
2338 </td></tr>
2338 </td></tr>
2339 <tr><td>
2339 <tr><td>
2340 <a href="/help/scripting">
2340 <a href="/help/scripting">
2341 scripting
2341 scripting
2342 </a>
2342 </a>
2343 </td><td>
2343 </td><td>
2344 Using Mercurial from scripts and automation
2344 Using Mercurial from scripts and automation
2345 </td></tr>
2345 </td></tr>
2346 <tr><td>
2346 <tr><td>
2347 <a href="/help/subrepos">
2347 <a href="/help/subrepos">
2348 subrepos
2348 subrepos
2349 </a>
2349 </a>
2350 </td><td>
2350 </td><td>
2351 Subrepositories
2351 Subrepositories
2352 </td></tr>
2352 </td></tr>
2353 <tr><td>
2353 <tr><td>
2354 <a href="/help/templating">
2354 <a href="/help/templating">
2355 templating
2355 templating
2356 </a>
2356 </a>
2357 </td><td>
2357 </td><td>
2358 Template Usage
2358 Template Usage
2359 </td></tr>
2359 </td></tr>
2360 <tr><td>
2360 <tr><td>
2361 <a href="/help/urls">
2361 <a href="/help/urls">
2362 urls
2362 urls
2363 </a>
2363 </a>
2364 </td><td>
2364 </td><td>
2365 URL Paths
2365 URL Paths
2366 </td></tr>
2366 </td></tr>
2367 <tr><td>
2367 <tr><td>
2368 <a href="/help/topic-containing-verbose">
2368 <a href="/help/topic-containing-verbose">
2369 topic-containing-verbose
2369 topic-containing-verbose
2370 </a>
2370 </a>
2371 </td><td>
2371 </td><td>
2372 This is the topic to test omit indicating.
2372 This is the topic to test omit indicating.
2373 </td></tr>
2373 </td></tr>
2374
2374
2375
2375
2376 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
2376 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr>
2377
2377
2378 <tr><td>
2378 <tr><td>
2379 <a href="/help/abort">
2379 <a href="/help/abort">
2380 abort
2380 abort
2381 </a>
2381 </a>
2382 </td><td>
2382 </td><td>
2383 abort an unfinished operation (EXPERIMENTAL)
2383 abort an unfinished operation (EXPERIMENTAL)
2384 </td></tr>
2384 </td></tr>
2385 <tr><td>
2385 <tr><td>
2386 <a href="/help/add">
2386 <a href="/help/add">
2387 add
2387 add
2388 </a>
2388 </a>
2389 </td><td>
2389 </td><td>
2390 add the specified files on the next commit
2390 add the specified files on the next commit
2391 </td></tr>
2391 </td></tr>
2392 <tr><td>
2392 <tr><td>
2393 <a href="/help/annotate">
2393 <a href="/help/annotate">
2394 annotate
2394 annotate
2395 </a>
2395 </a>
2396 </td><td>
2396 </td><td>
2397 show changeset information by line for each file
2397 show changeset information by line for each file
2398 </td></tr>
2398 </td></tr>
2399 <tr><td>
2399 <tr><td>
2400 <a href="/help/clone">
2400 <a href="/help/clone">
2401 clone
2401 clone
2402 </a>
2402 </a>
2403 </td><td>
2403 </td><td>
2404 make a copy of an existing repository
2404 make a copy of an existing repository
2405 </td></tr>
2405 </td></tr>
2406 <tr><td>
2406 <tr><td>
2407 <a href="/help/commit">
2407 <a href="/help/commit">
2408 commit
2408 commit
2409 </a>
2409 </a>
2410 </td><td>
2410 </td><td>
2411 commit the specified files or all outstanding changes
2411 commit the specified files or all outstanding changes
2412 </td></tr>
2412 </td></tr>
2413 <tr><td>
2413 <tr><td>
2414 <a href="/help/continue">
2414 <a href="/help/continue">
2415 continue
2415 continue
2416 </a>
2416 </a>
2417 </td><td>
2417 </td><td>
2418 resumes an interrupted operation (EXPERIMENTAL)
2418 resumes an interrupted operation (EXPERIMENTAL)
2419 </td></tr>
2419 </td></tr>
2420 <tr><td>
2420 <tr><td>
2421 <a href="/help/diff">
2421 <a href="/help/diff">
2422 diff
2422 diff
2423 </a>
2423 </a>
2424 </td><td>
2424 </td><td>
2425 diff repository (or selected files)
2425 diff repository (or selected files)
2426 </td></tr>
2426 </td></tr>
2427 <tr><td>
2427 <tr><td>
2428 <a href="/help/export">
2428 <a href="/help/export">
2429 export
2429 export
2430 </a>
2430 </a>
2431 </td><td>
2431 </td><td>
2432 dump the header and diffs for one or more changesets
2432 dump the header and diffs for one or more changesets
2433 </td></tr>
2433 </td></tr>
2434 <tr><td>
2434 <tr><td>
2435 <a href="/help/forget">
2435 <a href="/help/forget">
2436 forget
2436 forget
2437 </a>
2437 </a>
2438 </td><td>
2438 </td><td>
2439 forget the specified files on the next commit
2439 forget the specified files on the next commit
2440 </td></tr>
2440 </td></tr>
2441 <tr><td>
2441 <tr><td>
2442 <a href="/help/init">
2442 <a href="/help/init">
2443 init
2443 init
2444 </a>
2444 </a>
2445 </td><td>
2445 </td><td>
2446 create a new repository in the given directory
2446 create a new repository in the given directory
2447 </td></tr>
2447 </td></tr>
2448 <tr><td>
2448 <tr><td>
2449 <a href="/help/log">
2449 <a href="/help/log">
2450 log
2450 log
2451 </a>
2451 </a>
2452 </td><td>
2452 </td><td>
2453 show revision history of entire repository or files
2453 show revision history of entire repository or files
2454 </td></tr>
2454 </td></tr>
2455 <tr><td>
2455 <tr><td>
2456 <a href="/help/merge">
2456 <a href="/help/merge">
2457 merge
2457 merge
2458 </a>
2458 </a>
2459 </td><td>
2459 </td><td>
2460 merge another revision into working directory
2460 merge another revision into working directory
2461 </td></tr>
2461 </td></tr>
2462 <tr><td>
2462 <tr><td>
2463 <a href="/help/pull">
2463 <a href="/help/pull">
2464 pull
2464 pull
2465 </a>
2465 </a>
2466 </td><td>
2466 </td><td>
2467 pull changes from the specified source
2467 pull changes from the specified source
2468 </td></tr>
2468 </td></tr>
2469 <tr><td>
2469 <tr><td>
2470 <a href="/help/push">
2470 <a href="/help/push">
2471 push
2471 push
2472 </a>
2472 </a>
2473 </td><td>
2473 </td><td>
2474 push changes to the specified destination
2474 push changes to the specified destination
2475 </td></tr>
2475 </td></tr>
2476 <tr><td>
2476 <tr><td>
2477 <a href="/help/remove">
2477 <a href="/help/remove">
2478 remove
2478 remove
2479 </a>
2479 </a>
2480 </td><td>
2480 </td><td>
2481 remove the specified files on the next commit
2481 remove the specified files on the next commit
2482 </td></tr>
2482 </td></tr>
2483 <tr><td>
2483 <tr><td>
2484 <a href="/help/serve">
2484 <a href="/help/serve">
2485 serve
2485 serve
2486 </a>
2486 </a>
2487 </td><td>
2487 </td><td>
2488 start stand-alone webserver
2488 start stand-alone webserver
2489 </td></tr>
2489 </td></tr>
2490 <tr><td>
2490 <tr><td>
2491 <a href="/help/status">
2491 <a href="/help/status">
2492 status
2492 status
2493 </a>
2493 </a>
2494 </td><td>
2494 </td><td>
2495 show changed files in the working directory
2495 show changed files in the working directory
2496 </td></tr>
2496 </td></tr>
2497 <tr><td>
2497 <tr><td>
2498 <a href="/help/summary">
2498 <a href="/help/summary">
2499 summary
2499 summary
2500 </a>
2500 </a>
2501 </td><td>
2501 </td><td>
2502 summarize working directory state
2502 summarize working directory state
2503 </td></tr>
2503 </td></tr>
2504 <tr><td>
2504 <tr><td>
2505 <a href="/help/update">
2505 <a href="/help/update">
2506 update
2506 update
2507 </a>
2507 </a>
2508 </td><td>
2508 </td><td>
2509 update working directory (or switch revisions)
2509 update working directory (or switch revisions)
2510 </td></tr>
2510 </td></tr>
2511
2511
2512
2512
2513
2513
2514 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
2514 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr>
2515
2515
2516 <tr><td>
2516 <tr><td>
2517 <a href="/help/addremove">
2517 <a href="/help/addremove">
2518 addremove
2518 addremove
2519 </a>
2519 </a>
2520 </td><td>
2520 </td><td>
2521 add all new files, delete all missing files
2521 add all new files, delete all missing files
2522 </td></tr>
2522 </td></tr>
2523 <tr><td>
2523 <tr><td>
2524 <a href="/help/archive">
2524 <a href="/help/archive">
2525 archive
2525 archive
2526 </a>
2526 </a>
2527 </td><td>
2527 </td><td>
2528 create an unversioned archive of a repository revision
2528 create an unversioned archive of a repository revision
2529 </td></tr>
2529 </td></tr>
2530 <tr><td>
2530 <tr><td>
2531 <a href="/help/backout">
2531 <a href="/help/backout">
2532 backout
2532 backout
2533 </a>
2533 </a>
2534 </td><td>
2534 </td><td>
2535 reverse effect of earlier changeset
2535 reverse effect of earlier changeset
2536 </td></tr>
2536 </td></tr>
2537 <tr><td>
2537 <tr><td>
2538 <a href="/help/bisect">
2538 <a href="/help/bisect">
2539 bisect
2539 bisect
2540 </a>
2540 </a>
2541 </td><td>
2541 </td><td>
2542 subdivision search of changesets
2542 subdivision search of changesets
2543 </td></tr>
2543 </td></tr>
2544 <tr><td>
2544 <tr><td>
2545 <a href="/help/bookmarks">
2545 <a href="/help/bookmarks">
2546 bookmarks
2546 bookmarks
2547 </a>
2547 </a>
2548 </td><td>
2548 </td><td>
2549 create a new bookmark or list existing bookmarks
2549 create a new bookmark or list existing bookmarks
2550 </td></tr>
2550 </td></tr>
2551 <tr><td>
2551 <tr><td>
2552 <a href="/help/branch">
2552 <a href="/help/branch">
2553 branch
2553 branch
2554 </a>
2554 </a>
2555 </td><td>
2555 </td><td>
2556 set or show the current branch name
2556 set or show the current branch name
2557 </td></tr>
2557 </td></tr>
2558 <tr><td>
2558 <tr><td>
2559 <a href="/help/branches">
2559 <a href="/help/branches">
2560 branches
2560 branches
2561 </a>
2561 </a>
2562 </td><td>
2562 </td><td>
2563 list repository named branches
2563 list repository named branches
2564 </td></tr>
2564 </td></tr>
2565 <tr><td>
2565 <tr><td>
2566 <a href="/help/bundle">
2566 <a href="/help/bundle">
2567 bundle
2567 bundle
2568 </a>
2568 </a>
2569 </td><td>
2569 </td><td>
2570 create a bundle file
2570 create a bundle file
2571 </td></tr>
2571 </td></tr>
2572 <tr><td>
2572 <tr><td>
2573 <a href="/help/cat">
2573 <a href="/help/cat">
2574 cat
2574 cat
2575 </a>
2575 </a>
2576 </td><td>
2576 </td><td>
2577 output the current or given revision of files
2577 output the current or given revision of files
2578 </td></tr>
2578 </td></tr>
2579 <tr><td>
2579 <tr><td>
2580 <a href="/help/config">
2580 <a href="/help/config">
2581 config
2581 config
2582 </a>
2582 </a>
2583 </td><td>
2583 </td><td>
2584 show combined config settings from all hgrc files
2584 show combined config settings from all hgrc files
2585 </td></tr>
2585 </td></tr>
2586 <tr><td>
2586 <tr><td>
2587 <a href="/help/copy">
2587 <a href="/help/copy">
2588 copy
2588 copy
2589 </a>
2589 </a>
2590 </td><td>
2590 </td><td>
2591 mark files as copied for the next commit
2591 mark files as copied for the next commit
2592 </td></tr>
2592 </td></tr>
2593 <tr><td>
2593 <tr><td>
2594 <a href="/help/files">
2594 <a href="/help/files">
2595 files
2595 files
2596 </a>
2596 </a>
2597 </td><td>
2597 </td><td>
2598 list tracked files
2598 list tracked files
2599 </td></tr>
2599 </td></tr>
2600 <tr><td>
2600 <tr><td>
2601 <a href="/help/graft">
2601 <a href="/help/graft">
2602 graft
2602 graft
2603 </a>
2603 </a>
2604 </td><td>
2604 </td><td>
2605 copy changes from other branches onto the current branch
2605 copy changes from other branches onto the current branch
2606 </td></tr>
2606 </td></tr>
2607 <tr><td>
2607 <tr><td>
2608 <a href="/help/grep">
2608 <a href="/help/grep">
2609 grep
2609 grep
2610 </a>
2610 </a>
2611 </td><td>
2611 </td><td>
2612 search for a pattern in specified files
2612 search for a pattern in specified files
2613 </td></tr>
2613 </td></tr>
2614 <tr><td>
2614 <tr><td>
2615 <a href="/help/hashelp">
2615 <a href="/help/hashelp">
2616 hashelp
2616 hashelp
2617 </a>
2617 </a>
2618 </td><td>
2618 </td><td>
2619 Extension command's help
2619 Extension command's help
2620 </td></tr>
2620 </td></tr>
2621 <tr><td>
2621 <tr><td>
2622 <a href="/help/heads">
2622 <a href="/help/heads">
2623 heads
2623 heads
2624 </a>
2624 </a>
2625 </td><td>
2625 </td><td>
2626 show branch heads
2626 show branch heads
2627 </td></tr>
2627 </td></tr>
2628 <tr><td>
2628 <tr><td>
2629 <a href="/help/help">
2629 <a href="/help/help">
2630 help
2630 help
2631 </a>
2631 </a>
2632 </td><td>
2632 </td><td>
2633 show help for a given topic or a help overview
2633 show help for a given topic or a help overview
2634 </td></tr>
2634 </td></tr>
2635 <tr><td>
2635 <tr><td>
2636 <a href="/help/hgalias">
2636 <a href="/help/hgalias">
2637 hgalias
2637 hgalias
2638 </a>
2638 </a>
2639 </td><td>
2639 </td><td>
2640 My doc
2640 My doc
2641 </td></tr>
2641 </td></tr>
2642 <tr><td>
2642 <tr><td>
2643 <a href="/help/hgaliasnodoc">
2643 <a href="/help/hgaliasnodoc">
2644 hgaliasnodoc
2644 hgaliasnodoc
2645 </a>
2645 </a>
2646 </td><td>
2646 </td><td>
2647 summarize working directory state
2647 summarize working directory state
2648 </td></tr>
2648 </td></tr>
2649 <tr><td>
2649 <tr><td>
2650 <a href="/help/identify">
2650 <a href="/help/identify">
2651 identify
2651 identify
2652 </a>
2652 </a>
2653 </td><td>
2653 </td><td>
2654 identify the working directory or specified revision
2654 identify the working directory or specified revision
2655 </td></tr>
2655 </td></tr>
2656 <tr><td>
2656 <tr><td>
2657 <a href="/help/import">
2657 <a href="/help/import">
2658 import
2658 import
2659 </a>
2659 </a>
2660 </td><td>
2660 </td><td>
2661 import an ordered set of patches
2661 import an ordered set of patches
2662 </td></tr>
2662 </td></tr>
2663 <tr><td>
2663 <tr><td>
2664 <a href="/help/incoming">
2664 <a href="/help/incoming">
2665 incoming
2665 incoming
2666 </a>
2666 </a>
2667 </td><td>
2667 </td><td>
2668 show new changesets found in source
2668 show new changesets found in source
2669 </td></tr>
2669 </td></tr>
2670 <tr><td>
2670 <tr><td>
2671 <a href="/help/manifest">
2671 <a href="/help/manifest">
2672 manifest
2672 manifest
2673 </a>
2673 </a>
2674 </td><td>
2674 </td><td>
2675 output the current or given revision of the project manifest
2675 output the current or given revision of the project manifest
2676 </td></tr>
2676 </td></tr>
2677 <tr><td>
2677 <tr><td>
2678 <a href="/help/nohelp">
2678 <a href="/help/nohelp">
2679 nohelp
2679 nohelp
2680 </a>
2680 </a>
2681 </td><td>
2681 </td><td>
2682 (no help text available)
2682 (no help text available)
2683 </td></tr>
2683 </td></tr>
2684 <tr><td>
2684 <tr><td>
2685 <a href="/help/outgoing">
2685 <a href="/help/outgoing">
2686 outgoing
2686 outgoing
2687 </a>
2687 </a>
2688 </td><td>
2688 </td><td>
2689 show changesets not found in the destination
2689 show changesets not found in the destination
2690 </td></tr>
2690 </td></tr>
2691 <tr><td>
2691 <tr><td>
2692 <a href="/help/paths">
2692 <a href="/help/paths">
2693 paths
2693 paths
2694 </a>
2694 </a>
2695 </td><td>
2695 </td><td>
2696 show aliases for remote repositories
2696 show aliases for remote repositories
2697 </td></tr>
2697 </td></tr>
2698 <tr><td>
2698 <tr><td>
2699 <a href="/help/phase">
2699 <a href="/help/phase">
2700 phase
2700 phase
2701 </a>
2701 </a>
2702 </td><td>
2702 </td><td>
2703 set or show the current phase name
2703 set or show the current phase name
2704 </td></tr>
2704 </td></tr>
2705 <tr><td>
2705 <tr><td>
2706 <a href="/help/recover">
2706 <a href="/help/recover">
2707 recover
2707 recover
2708 </a>
2708 </a>
2709 </td><td>
2709 </td><td>
2710 roll back an interrupted transaction
2710 roll back an interrupted transaction
2711 </td></tr>
2711 </td></tr>
2712 <tr><td>
2712 <tr><td>
2713 <a href="/help/rename">
2713 <a href="/help/rename">
2714 rename
2714 rename
2715 </a>
2715 </a>
2716 </td><td>
2716 </td><td>
2717 rename files; equivalent of copy + remove
2717 rename files; equivalent of copy + remove
2718 </td></tr>
2718 </td></tr>
2719 <tr><td>
2719 <tr><td>
2720 <a href="/help/resolve">
2720 <a href="/help/resolve">
2721 resolve
2721 resolve
2722 </a>
2722 </a>
2723 </td><td>
2723 </td><td>
2724 redo merges or set/view the merge status of files
2724 redo merges or set/view the merge status of files
2725 </td></tr>
2725 </td></tr>
2726 <tr><td>
2726 <tr><td>
2727 <a href="/help/revert">
2727 <a href="/help/revert">
2728 revert
2728 revert
2729 </a>
2729 </a>
2730 </td><td>
2730 </td><td>
2731 restore files to their checkout state
2731 restore files to their checkout state
2732 </td></tr>
2732 </td></tr>
2733 <tr><td>
2733 <tr><td>
2734 <a href="/help/root">
2734 <a href="/help/root">
2735 root
2735 root
2736 </a>
2736 </a>
2737 </td><td>
2737 </td><td>
2738 print the root (top) of the current working directory
2738 print the root (top) of the current working directory
2739 </td></tr>
2739 </td></tr>
2740 <tr><td>
2740 <tr><td>
2741 <a href="/help/shellalias">
2741 <a href="/help/shellalias">
2742 shellalias
2742 shellalias
2743 </a>
2743 </a>
2744 </td><td>
2744 </td><td>
2745 (no help text available)
2745 (no help text available)
2746 </td></tr>
2746 </td></tr>
2747 <tr><td>
2747 <tr><td>
2748 <a href="/help/shelve">
2748 <a href="/help/shelve">
2749 shelve
2749 shelve
2750 </a>
2750 </a>
2751 </td><td>
2751 </td><td>
2752 save and set aside changes from the working directory
2752 save and set aside changes from the working directory
2753 </td></tr>
2753 </td></tr>
2754 <tr><td>
2754 <tr><td>
2755 <a href="/help/tag">
2755 <a href="/help/tag">
2756 tag
2756 tag
2757 </a>
2757 </a>
2758 </td><td>
2758 </td><td>
2759 add one or more tags for the current or given revision
2759 add one or more tags for the current or given revision
2760 </td></tr>
2760 </td></tr>
2761 <tr><td>
2761 <tr><td>
2762 <a href="/help/tags">
2762 <a href="/help/tags">
2763 tags
2763 tags
2764 </a>
2764 </a>
2765 </td><td>
2765 </td><td>
2766 list repository tags
2766 list repository tags
2767 </td></tr>
2767 </td></tr>
2768 <tr><td>
2768 <tr><td>
2769 <a href="/help/unbundle">
2769 <a href="/help/unbundle">
2770 unbundle
2770 unbundle
2771 </a>
2771 </a>
2772 </td><td>
2772 </td><td>
2773 apply one or more bundle files
2773 apply one or more bundle files
2774 </td></tr>
2774 </td></tr>
2775 <tr><td>
2775 <tr><td>
2776 <a href="/help/unshelve">
2776 <a href="/help/unshelve">
2777 unshelve
2777 unshelve
2778 </a>
2778 </a>
2779 </td><td>
2779 </td><td>
2780 restore a shelved change to the working directory
2780 restore a shelved change to the working directory
2781 </td></tr>
2781 </td></tr>
2782 <tr><td>
2782 <tr><td>
2783 <a href="/help/verify">
2783 <a href="/help/verify">
2784 verify
2784 verify
2785 </a>
2785 </a>
2786 </td><td>
2786 </td><td>
2787 verify the integrity of the repository
2787 verify the integrity of the repository
2788 </td></tr>
2788 </td></tr>
2789 <tr><td>
2789 <tr><td>
2790 <a href="/help/version">
2790 <a href="/help/version">
2791 version
2791 version
2792 </a>
2792 </a>
2793 </td><td>
2793 </td><td>
2794 output version and copyright information
2794 output version and copyright information
2795 </td></tr>
2795 </td></tr>
2796
2796
2797
2797
2798 </table>
2798 </table>
2799 </div>
2799 </div>
2800 </div>
2800 </div>
2801
2801
2802
2802
2803
2803
2804 </body>
2804 </body>
2805 </html>
2805 </html>
2806
2806
2807
2807
2808 $ get-with-headers.py $LOCALIP:$HGPORT "help/add"
2808 $ get-with-headers.py $LOCALIP:$HGPORT "help/add"
2809 200 Script output follows
2809 200 Script output follows
2810
2810
2811 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2811 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2812 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
2812 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
2813 <head>
2813 <head>
2814 <link rel="icon" href="/static/hgicon.png" type="image/png" />
2814 <link rel="icon" href="/static/hgicon.png" type="image/png" />
2815 <meta name="robots" content="index, nofollow" />
2815 <meta name="robots" content="index, nofollow" />
2816 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
2816 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
2817 <script type="text/javascript" src="/static/mercurial.js"></script>
2817 <script type="text/javascript" src="/static/mercurial.js"></script>
2818
2818
2819 <title>Help: add</title>
2819 <title>Help: add</title>
2820 </head>
2820 </head>
2821 <body>
2821 <body>
2822
2822
2823 <div class="container">
2823 <div class="container">
2824 <div class="menu">
2824 <div class="menu">
2825 <div class="logo">
2825 <div class="logo">
2826 <a href="https://mercurial-scm.org/">
2826 <a href="https://mercurial-scm.org/">
2827 <img src="/static/hglogo.png" alt="mercurial" /></a>
2827 <img src="/static/hglogo.png" alt="mercurial" /></a>
2828 </div>
2828 </div>
2829 <ul>
2829 <ul>
2830 <li><a href="/shortlog">log</a></li>
2830 <li><a href="/shortlog">log</a></li>
2831 <li><a href="/graph">graph</a></li>
2831 <li><a href="/graph">graph</a></li>
2832 <li><a href="/tags">tags</a></li>
2832 <li><a href="/tags">tags</a></li>
2833 <li><a href="/bookmarks">bookmarks</a></li>
2833 <li><a href="/bookmarks">bookmarks</a></li>
2834 <li><a href="/branches">branches</a></li>
2834 <li><a href="/branches">branches</a></li>
2835 </ul>
2835 </ul>
2836 <ul>
2836 <ul>
2837 <li class="active"><a href="/help">help</a></li>
2837 <li class="active"><a href="/help">help</a></li>
2838 </ul>
2838 </ul>
2839 </div>
2839 </div>
2840
2840
2841 <div class="main">
2841 <div class="main">
2842 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
2842 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
2843 <h3>Help: add</h3>
2843 <h3>Help: add</h3>
2844
2844
2845 <form class="search" action="/log">
2845 <form class="search" action="/log">
2846
2846
2847 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
2847 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
2848 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
2848 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
2849 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
2849 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
2850 </form>
2850 </form>
2851 <div id="doc">
2851 <div id="doc">
2852 <p>
2852 <p>
2853 hg add [OPTION]... [FILE]...
2853 hg add [OPTION]... [FILE]...
2854 </p>
2854 </p>
2855 <p>
2855 <p>
2856 add the specified files on the next commit
2856 add the specified files on the next commit
2857 </p>
2857 </p>
2858 <p>
2858 <p>
2859 Schedule files to be version controlled and added to the
2859 Schedule files to be version controlled and added to the
2860 repository.
2860 repository.
2861 </p>
2861 </p>
2862 <p>
2862 <p>
2863 The files will be added to the repository at the next commit. To
2863 The files will be added to the repository at the next commit. To
2864 undo an add before that, see 'hg forget'.
2864 undo an add before that, see 'hg forget'.
2865 </p>
2865 </p>
2866 <p>
2866 <p>
2867 If no names are given, add all files to the repository (except
2867 If no names are given, add all files to the repository (except
2868 files matching &quot;.hgignore&quot;).
2868 files matching &quot;.hgignore&quot;).
2869 </p>
2869 </p>
2870 <p>
2870 <p>
2871 Examples:
2871 Examples:
2872 </p>
2872 </p>
2873 <ul>
2873 <ul>
2874 <li> New (unknown) files are added automatically by 'hg add':
2874 <li> New (unknown) files are added automatically by 'hg add':
2875 <pre>
2875 <pre>
2876 \$ ls (re)
2876 \$ ls (re)
2877 foo.c
2877 foo.c
2878 \$ hg status (re)
2878 \$ hg status (re)
2879 ? foo.c
2879 ? foo.c
2880 \$ hg add (re)
2880 \$ hg add (re)
2881 adding foo.c
2881 adding foo.c
2882 \$ hg status (re)
2882 \$ hg status (re)
2883 A foo.c
2883 A foo.c
2884 </pre>
2884 </pre>
2885 <li> Specific files to be added can be specified:
2885 <li> Specific files to be added can be specified:
2886 <pre>
2886 <pre>
2887 \$ ls (re)
2887 \$ ls (re)
2888 bar.c foo.c
2888 bar.c foo.c
2889 \$ hg status (re)
2889 \$ hg status (re)
2890 ? bar.c
2890 ? bar.c
2891 ? foo.c
2891 ? foo.c
2892 \$ hg add bar.c (re)
2892 \$ hg add bar.c (re)
2893 \$ hg status (re)
2893 \$ hg status (re)
2894 A bar.c
2894 A bar.c
2895 ? foo.c
2895 ? foo.c
2896 </pre>
2896 </pre>
2897 </ul>
2897 </ul>
2898 <p>
2898 <p>
2899 Returns 0 if all files are successfully added.
2899 Returns 0 if all files are successfully added.
2900 </p>
2900 </p>
2901 <p>
2901 <p>
2902 options ([+] can be repeated):
2902 options ([+] can be repeated):
2903 </p>
2903 </p>
2904 <table>
2904 <table>
2905 <tr><td>-I</td>
2905 <tr><td>-I</td>
2906 <td>--include PATTERN [+]</td>
2906 <td>--include PATTERN [+]</td>
2907 <td>include names matching the given patterns</td></tr>
2907 <td>include names matching the given patterns</td></tr>
2908 <tr><td>-X</td>
2908 <tr><td>-X</td>
2909 <td>--exclude PATTERN [+]</td>
2909 <td>--exclude PATTERN [+]</td>
2910 <td>exclude names matching the given patterns</td></tr>
2910 <td>exclude names matching the given patterns</td></tr>
2911 <tr><td>-S</td>
2911 <tr><td>-S</td>
2912 <td>--subrepos</td>
2912 <td>--subrepos</td>
2913 <td>recurse into subrepositories</td></tr>
2913 <td>recurse into subrepositories</td></tr>
2914 <tr><td>-n</td>
2914 <tr><td>-n</td>
2915 <td>--dry-run</td>
2915 <td>--dry-run</td>
2916 <td>do not perform actions, just print output</td></tr>
2916 <td>do not perform actions, just print output</td></tr>
2917 </table>
2917 </table>
2918 <p>
2918 <p>
2919 global options ([+] can be repeated):
2919 global options ([+] can be repeated):
2920 </p>
2920 </p>
2921 <table>
2921 <table>
2922 <tr><td>-R</td>
2922 <tr><td>-R</td>
2923 <td>--repository REPO</td>
2923 <td>--repository REPO</td>
2924 <td>repository root directory or name of overlay bundle file</td></tr>
2924 <td>repository root directory or name of overlay bundle file</td></tr>
2925 <tr><td></td>
2925 <tr><td></td>
2926 <td>--cwd DIR</td>
2926 <td>--cwd DIR</td>
2927 <td>change working directory</td></tr>
2927 <td>change working directory</td></tr>
2928 <tr><td>-y</td>
2928 <tr><td>-y</td>
2929 <td>--noninteractive</td>
2929 <td>--noninteractive</td>
2930 <td>do not prompt, automatically pick the first choice for all prompts</td></tr>
2930 <td>do not prompt, automatically pick the first choice for all prompts</td></tr>
2931 <tr><td>-q</td>
2931 <tr><td>-q</td>
2932 <td>--quiet</td>
2932 <td>--quiet</td>
2933 <td>suppress output</td></tr>
2933 <td>suppress output</td></tr>
2934 <tr><td>-v</td>
2934 <tr><td>-v</td>
2935 <td>--verbose</td>
2935 <td>--verbose</td>
2936 <td>enable additional output</td></tr>
2936 <td>enable additional output</td></tr>
2937 <tr><td></td>
2937 <tr><td></td>
2938 <td>--color TYPE</td>
2938 <td>--color TYPE</td>
2939 <td>when to colorize (boolean, always, auto, never, or debug)</td></tr>
2939 <td>when to colorize (boolean, always, auto, never, or debug)</td></tr>
2940 <tr><td></td>
2940 <tr><td></td>
2941 <td>--config CONFIG [+]</td>
2941 <td>--config CONFIG [+]</td>
2942 <td>set/override config option (use 'section.name=value')</td></tr>
2942 <td>set/override config option (use 'section.name=value')</td></tr>
2943 <tr><td></td>
2943 <tr><td></td>
2944 <td>--debug</td>
2944 <td>--debug</td>
2945 <td>enable debugging output</td></tr>
2945 <td>enable debugging output</td></tr>
2946 <tr><td></td>
2946 <tr><td></td>
2947 <td>--debugger</td>
2947 <td>--debugger</td>
2948 <td>start debugger</td></tr>
2948 <td>start debugger</td></tr>
2949 <tr><td></td>
2949 <tr><td></td>
2950 <td>--encoding ENCODE</td>
2950 <td>--encoding ENCODE</td>
2951 <td>set the charset encoding (default: ascii)</td></tr>
2951 <td>set the charset encoding (default: ascii)</td></tr>
2952 <tr><td></td>
2952 <tr><td></td>
2953 <td>--encodingmode MODE</td>
2953 <td>--encodingmode MODE</td>
2954 <td>set the charset encoding mode (default: strict)</td></tr>
2954 <td>set the charset encoding mode (default: strict)</td></tr>
2955 <tr><td></td>
2955 <tr><td></td>
2956 <td>--traceback</td>
2956 <td>--traceback</td>
2957 <td>always print a traceback on exception</td></tr>
2957 <td>always print a traceback on exception</td></tr>
2958 <tr><td></td>
2958 <tr><td></td>
2959 <td>--time</td>
2959 <td>--time</td>
2960 <td>time how long the command takes</td></tr>
2960 <td>time how long the command takes</td></tr>
2961 <tr><td></td>
2961 <tr><td></td>
2962 <td>--profile</td>
2962 <td>--profile</td>
2963 <td>print command execution profile</td></tr>
2963 <td>print command execution profile</td></tr>
2964 <tr><td></td>
2964 <tr><td></td>
2965 <td>--version</td>
2965 <td>--version</td>
2966 <td>output version information and exit</td></tr>
2966 <td>output version information and exit</td></tr>
2967 <tr><td>-h</td>
2967 <tr><td>-h</td>
2968 <td>--help</td>
2968 <td>--help</td>
2969 <td>display help and exit</td></tr>
2969 <td>display help and exit</td></tr>
2970 <tr><td></td>
2970 <tr><td></td>
2971 <td>--hidden</td>
2971 <td>--hidden</td>
2972 <td>consider hidden changesets</td></tr>
2972 <td>consider hidden changesets</td></tr>
2973 <tr><td></td>
2973 <tr><td></td>
2974 <td>--pager TYPE</td>
2974 <td>--pager TYPE</td>
2975 <td>when to paginate (boolean, always, auto, or never) (default: auto)</td></tr>
2975 <td>when to paginate (boolean, always, auto, or never) (default: auto)</td></tr>
2976 </table>
2976 </table>
2977
2977
2978 </div>
2978 </div>
2979 </div>
2979 </div>
2980 </div>
2980 </div>
2981
2981
2982
2982
2983
2983
2984 </body>
2984 </body>
2985 </html>
2985 </html>
2986
2986
2987
2987
2988 $ get-with-headers.py $LOCALIP:$HGPORT "help/remove"
2988 $ get-with-headers.py $LOCALIP:$HGPORT "help/remove"
2989 200 Script output follows
2989 200 Script output follows
2990
2990
2991 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2991 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2992 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
2992 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
2993 <head>
2993 <head>
2994 <link rel="icon" href="/static/hgicon.png" type="image/png" />
2994 <link rel="icon" href="/static/hgicon.png" type="image/png" />
2995 <meta name="robots" content="index, nofollow" />
2995 <meta name="robots" content="index, nofollow" />
2996 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
2996 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
2997 <script type="text/javascript" src="/static/mercurial.js"></script>
2997 <script type="text/javascript" src="/static/mercurial.js"></script>
2998
2998
2999 <title>Help: remove</title>
2999 <title>Help: remove</title>
3000 </head>
3000 </head>
3001 <body>
3001 <body>
3002
3002
3003 <div class="container">
3003 <div class="container">
3004 <div class="menu">
3004 <div class="menu">
3005 <div class="logo">
3005 <div class="logo">
3006 <a href="https://mercurial-scm.org/">
3006 <a href="https://mercurial-scm.org/">
3007 <img src="/static/hglogo.png" alt="mercurial" /></a>
3007 <img src="/static/hglogo.png" alt="mercurial" /></a>
3008 </div>
3008 </div>
3009 <ul>
3009 <ul>
3010 <li><a href="/shortlog">log</a></li>
3010 <li><a href="/shortlog">log</a></li>
3011 <li><a href="/graph">graph</a></li>
3011 <li><a href="/graph">graph</a></li>
3012 <li><a href="/tags">tags</a></li>
3012 <li><a href="/tags">tags</a></li>
3013 <li><a href="/bookmarks">bookmarks</a></li>
3013 <li><a href="/bookmarks">bookmarks</a></li>
3014 <li><a href="/branches">branches</a></li>
3014 <li><a href="/branches">branches</a></li>
3015 </ul>
3015 </ul>
3016 <ul>
3016 <ul>
3017 <li class="active"><a href="/help">help</a></li>
3017 <li class="active"><a href="/help">help</a></li>
3018 </ul>
3018 </ul>
3019 </div>
3019 </div>
3020
3020
3021 <div class="main">
3021 <div class="main">
3022 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3022 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3023 <h3>Help: remove</h3>
3023 <h3>Help: remove</h3>
3024
3024
3025 <form class="search" action="/log">
3025 <form class="search" action="/log">
3026
3026
3027 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3027 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3028 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3028 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3029 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3029 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3030 </form>
3030 </form>
3031 <div id="doc">
3031 <div id="doc">
3032 <p>
3032 <p>
3033 hg remove [OPTION]... FILE...
3033 hg remove [OPTION]... FILE...
3034 </p>
3034 </p>
3035 <p>
3035 <p>
3036 aliases: rm
3036 aliases: rm
3037 </p>
3037 </p>
3038 <p>
3038 <p>
3039 remove the specified files on the next commit
3039 remove the specified files on the next commit
3040 </p>
3040 </p>
3041 <p>
3041 <p>
3042 Schedule the indicated files for removal from the current branch.
3042 Schedule the indicated files for removal from the current branch.
3043 </p>
3043 </p>
3044 <p>
3044 <p>
3045 This command schedules the files to be removed at the next commit.
3045 This command schedules the files to be removed at the next commit.
3046 To undo a remove before that, see 'hg revert'. To undo added
3046 To undo a remove before that, see 'hg revert'. To undo added
3047 files, see 'hg forget'.
3047 files, see 'hg forget'.
3048 </p>
3048 </p>
3049 <p>
3049 <p>
3050 -A/--after can be used to remove only files that have already
3050 -A/--after can be used to remove only files that have already
3051 been deleted, -f/--force can be used to force deletion, and -Af
3051 been deleted, -f/--force can be used to force deletion, and -Af
3052 can be used to remove files from the next revision without
3052 can be used to remove files from the next revision without
3053 deleting them from the working directory.
3053 deleting them from the working directory.
3054 </p>
3054 </p>
3055 <p>
3055 <p>
3056 The following table details the behavior of remove for different
3056 The following table details the behavior of remove for different
3057 file states (columns) and option combinations (rows). The file
3057 file states (columns) and option combinations (rows). The file
3058 states are Added [A], Clean [C], Modified [M] and Missing [!]
3058 states are Added [A], Clean [C], Modified [M] and Missing [!]
3059 (as reported by 'hg status'). The actions are Warn, Remove
3059 (as reported by 'hg status'). The actions are Warn, Remove
3060 (from branch) and Delete (from disk):
3060 (from branch) and Delete (from disk):
3061 </p>
3061 </p>
3062 <table>
3062 <table>
3063 <tr><td>opt/state</td>
3063 <tr><td>opt/state</td>
3064 <td>A</td>
3064 <td>A</td>
3065 <td>C</td>
3065 <td>C</td>
3066 <td>M</td>
3066 <td>M</td>
3067 <td>!</td></tr>
3067 <td>!</td></tr>
3068 <tr><td>none</td>
3068 <tr><td>none</td>
3069 <td>W</td>
3069 <td>W</td>
3070 <td>RD</td>
3070 <td>RD</td>
3071 <td>W</td>
3071 <td>W</td>
3072 <td>R</td></tr>
3072 <td>R</td></tr>
3073 <tr><td>-f</td>
3073 <tr><td>-f</td>
3074 <td>R</td>
3074 <td>R</td>
3075 <td>RD</td>
3075 <td>RD</td>
3076 <td>RD</td>
3076 <td>RD</td>
3077 <td>R</td></tr>
3077 <td>R</td></tr>
3078 <tr><td>-A</td>
3078 <tr><td>-A</td>
3079 <td>W</td>
3079 <td>W</td>
3080 <td>W</td>
3080 <td>W</td>
3081 <td>W</td>
3081 <td>W</td>
3082 <td>R</td></tr>
3082 <td>R</td></tr>
3083 <tr><td>-Af</td>
3083 <tr><td>-Af</td>
3084 <td>R</td>
3084 <td>R</td>
3085 <td>R</td>
3085 <td>R</td>
3086 <td>R</td>
3086 <td>R</td>
3087 <td>R</td></tr>
3087 <td>R</td></tr>
3088 </table>
3088 </table>
3089 <p>
3089 <p>
3090 <b>Note:</b>
3090 <b>Note:</b>
3091 </p>
3091 </p>
3092 <p>
3092 <p>
3093 'hg remove' never deletes files in Added [A] state from the
3093 'hg remove' never deletes files in Added [A] state from the
3094 working directory, not even if &quot;--force&quot; is specified.
3094 working directory, not even if &quot;--force&quot; is specified.
3095 </p>
3095 </p>
3096 <p>
3096 <p>
3097 Returns 0 on success, 1 if any warnings encountered.
3097 Returns 0 on success, 1 if any warnings encountered.
3098 </p>
3098 </p>
3099 <p>
3099 <p>
3100 options ([+] can be repeated):
3100 options ([+] can be repeated):
3101 </p>
3101 </p>
3102 <table>
3102 <table>
3103 <tr><td>-A</td>
3103 <tr><td>-A</td>
3104 <td>--after</td>
3104 <td>--after</td>
3105 <td>record delete for missing files</td></tr>
3105 <td>record delete for missing files</td></tr>
3106 <tr><td>-f</td>
3106 <tr><td>-f</td>
3107 <td>--force</td>
3107 <td>--force</td>
3108 <td>forget added files, delete modified files</td></tr>
3108 <td>forget added files, delete modified files</td></tr>
3109 <tr><td>-S</td>
3109 <tr><td>-S</td>
3110 <td>--subrepos</td>
3110 <td>--subrepos</td>
3111 <td>recurse into subrepositories</td></tr>
3111 <td>recurse into subrepositories</td></tr>
3112 <tr><td>-I</td>
3112 <tr><td>-I</td>
3113 <td>--include PATTERN [+]</td>
3113 <td>--include PATTERN [+]</td>
3114 <td>include names matching the given patterns</td></tr>
3114 <td>include names matching the given patterns</td></tr>
3115 <tr><td>-X</td>
3115 <tr><td>-X</td>
3116 <td>--exclude PATTERN [+]</td>
3116 <td>--exclude PATTERN [+]</td>
3117 <td>exclude names matching the given patterns</td></tr>
3117 <td>exclude names matching the given patterns</td></tr>
3118 <tr><td>-n</td>
3118 <tr><td>-n</td>
3119 <td>--dry-run</td>
3119 <td>--dry-run</td>
3120 <td>do not perform actions, just print output</td></tr>
3120 <td>do not perform actions, just print output</td></tr>
3121 </table>
3121 </table>
3122 <p>
3122 <p>
3123 global options ([+] can be repeated):
3123 global options ([+] can be repeated):
3124 </p>
3124 </p>
3125 <table>
3125 <table>
3126 <tr><td>-R</td>
3126 <tr><td>-R</td>
3127 <td>--repository REPO</td>
3127 <td>--repository REPO</td>
3128 <td>repository root directory or name of overlay bundle file</td></tr>
3128 <td>repository root directory or name of overlay bundle file</td></tr>
3129 <tr><td></td>
3129 <tr><td></td>
3130 <td>--cwd DIR</td>
3130 <td>--cwd DIR</td>
3131 <td>change working directory</td></tr>
3131 <td>change working directory</td></tr>
3132 <tr><td>-y</td>
3132 <tr><td>-y</td>
3133 <td>--noninteractive</td>
3133 <td>--noninteractive</td>
3134 <td>do not prompt, automatically pick the first choice for all prompts</td></tr>
3134 <td>do not prompt, automatically pick the first choice for all prompts</td></tr>
3135 <tr><td>-q</td>
3135 <tr><td>-q</td>
3136 <td>--quiet</td>
3136 <td>--quiet</td>
3137 <td>suppress output</td></tr>
3137 <td>suppress output</td></tr>
3138 <tr><td>-v</td>
3138 <tr><td>-v</td>
3139 <td>--verbose</td>
3139 <td>--verbose</td>
3140 <td>enable additional output</td></tr>
3140 <td>enable additional output</td></tr>
3141 <tr><td></td>
3141 <tr><td></td>
3142 <td>--color TYPE</td>
3142 <td>--color TYPE</td>
3143 <td>when to colorize (boolean, always, auto, never, or debug)</td></tr>
3143 <td>when to colorize (boolean, always, auto, never, or debug)</td></tr>
3144 <tr><td></td>
3144 <tr><td></td>
3145 <td>--config CONFIG [+]</td>
3145 <td>--config CONFIG [+]</td>
3146 <td>set/override config option (use 'section.name=value')</td></tr>
3146 <td>set/override config option (use 'section.name=value')</td></tr>
3147 <tr><td></td>
3147 <tr><td></td>
3148 <td>--debug</td>
3148 <td>--debug</td>
3149 <td>enable debugging output</td></tr>
3149 <td>enable debugging output</td></tr>
3150 <tr><td></td>
3150 <tr><td></td>
3151 <td>--debugger</td>
3151 <td>--debugger</td>
3152 <td>start debugger</td></tr>
3152 <td>start debugger</td></tr>
3153 <tr><td></td>
3153 <tr><td></td>
3154 <td>--encoding ENCODE</td>
3154 <td>--encoding ENCODE</td>
3155 <td>set the charset encoding (default: ascii)</td></tr>
3155 <td>set the charset encoding (default: ascii)</td></tr>
3156 <tr><td></td>
3156 <tr><td></td>
3157 <td>--encodingmode MODE</td>
3157 <td>--encodingmode MODE</td>
3158 <td>set the charset encoding mode (default: strict)</td></tr>
3158 <td>set the charset encoding mode (default: strict)</td></tr>
3159 <tr><td></td>
3159 <tr><td></td>
3160 <td>--traceback</td>
3160 <td>--traceback</td>
3161 <td>always print a traceback on exception</td></tr>
3161 <td>always print a traceback on exception</td></tr>
3162 <tr><td></td>
3162 <tr><td></td>
3163 <td>--time</td>
3163 <td>--time</td>
3164 <td>time how long the command takes</td></tr>
3164 <td>time how long the command takes</td></tr>
3165 <tr><td></td>
3165 <tr><td></td>
3166 <td>--profile</td>
3166 <td>--profile</td>
3167 <td>print command execution profile</td></tr>
3167 <td>print command execution profile</td></tr>
3168 <tr><td></td>
3168 <tr><td></td>
3169 <td>--version</td>
3169 <td>--version</td>
3170 <td>output version information and exit</td></tr>
3170 <td>output version information and exit</td></tr>
3171 <tr><td>-h</td>
3171 <tr><td>-h</td>
3172 <td>--help</td>
3172 <td>--help</td>
3173 <td>display help and exit</td></tr>
3173 <td>display help and exit</td></tr>
3174 <tr><td></td>
3174 <tr><td></td>
3175 <td>--hidden</td>
3175 <td>--hidden</td>
3176 <td>consider hidden changesets</td></tr>
3176 <td>consider hidden changesets</td></tr>
3177 <tr><td></td>
3177 <tr><td></td>
3178 <td>--pager TYPE</td>
3178 <td>--pager TYPE</td>
3179 <td>when to paginate (boolean, always, auto, or never) (default: auto)</td></tr>
3179 <td>when to paginate (boolean, always, auto, or never) (default: auto)</td></tr>
3180 </table>
3180 </table>
3181
3181
3182 </div>
3182 </div>
3183 </div>
3183 </div>
3184 </div>
3184 </div>
3185
3185
3186
3186
3187
3187
3188 </body>
3188 </body>
3189 </html>
3189 </html>
3190
3190
3191
3191
3192 $ get-with-headers.py $LOCALIP:$HGPORT "help/dates"
3192 $ get-with-headers.py $LOCALIP:$HGPORT "help/dates"
3193 200 Script output follows
3193 200 Script output follows
3194
3194
3195 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3195 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3196 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3196 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3197 <head>
3197 <head>
3198 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3198 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3199 <meta name="robots" content="index, nofollow" />
3199 <meta name="robots" content="index, nofollow" />
3200 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3200 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3201 <script type="text/javascript" src="/static/mercurial.js"></script>
3201 <script type="text/javascript" src="/static/mercurial.js"></script>
3202
3202
3203 <title>Help: dates</title>
3203 <title>Help: dates</title>
3204 </head>
3204 </head>
3205 <body>
3205 <body>
3206
3206
3207 <div class="container">
3207 <div class="container">
3208 <div class="menu">
3208 <div class="menu">
3209 <div class="logo">
3209 <div class="logo">
3210 <a href="https://mercurial-scm.org/">
3210 <a href="https://mercurial-scm.org/">
3211 <img src="/static/hglogo.png" alt="mercurial" /></a>
3211 <img src="/static/hglogo.png" alt="mercurial" /></a>
3212 </div>
3212 </div>
3213 <ul>
3213 <ul>
3214 <li><a href="/shortlog">log</a></li>
3214 <li><a href="/shortlog">log</a></li>
3215 <li><a href="/graph">graph</a></li>
3215 <li><a href="/graph">graph</a></li>
3216 <li><a href="/tags">tags</a></li>
3216 <li><a href="/tags">tags</a></li>
3217 <li><a href="/bookmarks">bookmarks</a></li>
3217 <li><a href="/bookmarks">bookmarks</a></li>
3218 <li><a href="/branches">branches</a></li>
3218 <li><a href="/branches">branches</a></li>
3219 </ul>
3219 </ul>
3220 <ul>
3220 <ul>
3221 <li class="active"><a href="/help">help</a></li>
3221 <li class="active"><a href="/help">help</a></li>
3222 </ul>
3222 </ul>
3223 </div>
3223 </div>
3224
3224
3225 <div class="main">
3225 <div class="main">
3226 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3226 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3227 <h3>Help: dates</h3>
3227 <h3>Help: dates</h3>
3228
3228
3229 <form class="search" action="/log">
3229 <form class="search" action="/log">
3230
3230
3231 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3231 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3232 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3232 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3233 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3233 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3234 </form>
3234 </form>
3235 <div id="doc">
3235 <div id="doc">
3236 <h1>Date Formats</h1>
3236 <h1>Date Formats</h1>
3237 <p>
3237 <p>
3238 Some commands allow the user to specify a date, e.g.:
3238 Some commands allow the user to specify a date, e.g.:
3239 </p>
3239 </p>
3240 <ul>
3240 <ul>
3241 <li> backout, commit, import, tag: Specify the commit date.
3241 <li> backout, commit, import, tag: Specify the commit date.
3242 <li> log, revert, update: Select revision(s) by date.
3242 <li> log, revert, update: Select revision(s) by date.
3243 </ul>
3243 </ul>
3244 <p>
3244 <p>
3245 Many date formats are valid. Here are some examples:
3245 Many date formats are valid. Here are some examples:
3246 </p>
3246 </p>
3247 <ul>
3247 <ul>
3248 <li> &quot;Wed Dec 6 13:18:29 2006&quot; (local timezone assumed)
3248 <li> &quot;Wed Dec 6 13:18:29 2006&quot; (local timezone assumed)
3249 <li> &quot;Dec 6 13:18 -0600&quot; (year assumed, time offset provided)
3249 <li> &quot;Dec 6 13:18 -0600&quot; (year assumed, time offset provided)
3250 <li> &quot;Dec 6 13:18 UTC&quot; (UTC and GMT are aliases for +0000)
3250 <li> &quot;Dec 6 13:18 UTC&quot; (UTC and GMT are aliases for +0000)
3251 <li> &quot;Dec 6&quot; (midnight)
3251 <li> &quot;Dec 6&quot; (midnight)
3252 <li> &quot;13:18&quot; (today assumed)
3252 <li> &quot;13:18&quot; (today assumed)
3253 <li> &quot;3:39&quot; (3:39AM assumed)
3253 <li> &quot;3:39&quot; (3:39AM assumed)
3254 <li> &quot;3:39pm&quot; (15:39)
3254 <li> &quot;3:39pm&quot; (15:39)
3255 <li> &quot;2006-12-06 13:18:29&quot; (ISO 8601 format)
3255 <li> &quot;2006-12-06 13:18:29&quot; (ISO 8601 format)
3256 <li> &quot;2006-12-6 13:18&quot;
3256 <li> &quot;2006-12-6 13:18&quot;
3257 <li> &quot;2006-12-6&quot;
3257 <li> &quot;2006-12-6&quot;
3258 <li> &quot;12-6&quot;
3258 <li> &quot;12-6&quot;
3259 <li> &quot;12/6&quot;
3259 <li> &quot;12/6&quot;
3260 <li> &quot;12/6/6&quot; (Dec 6 2006)
3260 <li> &quot;12/6/6&quot; (Dec 6 2006)
3261 <li> &quot;today&quot; (midnight)
3261 <li> &quot;today&quot; (midnight)
3262 <li> &quot;yesterday&quot; (midnight)
3262 <li> &quot;yesterday&quot; (midnight)
3263 <li> &quot;now&quot; - right now
3263 <li> &quot;now&quot; - right now
3264 </ul>
3264 </ul>
3265 <p>
3265 <p>
3266 Lastly, there is Mercurial's internal format:
3266 Lastly, there is Mercurial's internal format:
3267 </p>
3267 </p>
3268 <ul>
3268 <ul>
3269 <li> &quot;1165411109 0&quot; (Wed Dec 6 13:18:29 2006 UTC)
3269 <li> &quot;1165411109 0&quot; (Wed Dec 6 13:18:29 2006 UTC)
3270 </ul>
3270 </ul>
3271 <p>
3271 <p>
3272 This is the internal representation format for dates. The first number
3272 This is the internal representation format for dates. The first number
3273 is the number of seconds since the epoch (1970-01-01 00:00 UTC). The
3273 is the number of seconds since the epoch (1970-01-01 00:00 UTC). The
3274 second is the offset of the local timezone, in seconds west of UTC
3274 second is the offset of the local timezone, in seconds west of UTC
3275 (negative if the timezone is east of UTC).
3275 (negative if the timezone is east of UTC).
3276 </p>
3276 </p>
3277 <p>
3277 <p>
3278 The log command also accepts date ranges:
3278 The log command also accepts date ranges:
3279 </p>
3279 </p>
3280 <ul>
3280 <ul>
3281 <li> &quot;&lt;DATE&quot; - at or before a given date/time
3281 <li> &quot;&lt;DATE&quot; - at or before a given date/time
3282 <li> &quot;&gt;DATE&quot; - on or after a given date/time
3282 <li> &quot;&gt;DATE&quot; - on or after a given date/time
3283 <li> &quot;DATE to DATE&quot; - a date range, inclusive
3283 <li> &quot;DATE to DATE&quot; - a date range, inclusive
3284 <li> &quot;-DAYS&quot; - within a given number of days of today
3284 <li> &quot;-DAYS&quot; - within a given number of days from today
3285 </ul>
3285 </ul>
3286
3286
3287 </div>
3287 </div>
3288 </div>
3288 </div>
3289 </div>
3289 </div>
3290
3290
3291
3291
3292
3292
3293 </body>
3293 </body>
3294 </html>
3294 </html>
3295
3295
3296
3296
3297 $ get-with-headers.py $LOCALIP:$HGPORT "help/pager"
3297 $ get-with-headers.py $LOCALIP:$HGPORT "help/pager"
3298 200 Script output follows
3298 200 Script output follows
3299
3299
3300 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3300 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3301 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3301 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3302 <head>
3302 <head>
3303 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3303 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3304 <meta name="robots" content="index, nofollow" />
3304 <meta name="robots" content="index, nofollow" />
3305 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3305 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3306 <script type="text/javascript" src="/static/mercurial.js"></script>
3306 <script type="text/javascript" src="/static/mercurial.js"></script>
3307
3307
3308 <title>Help: pager</title>
3308 <title>Help: pager</title>
3309 </head>
3309 </head>
3310 <body>
3310 <body>
3311
3311
3312 <div class="container">
3312 <div class="container">
3313 <div class="menu">
3313 <div class="menu">
3314 <div class="logo">
3314 <div class="logo">
3315 <a href="https://mercurial-scm.org/">
3315 <a href="https://mercurial-scm.org/">
3316 <img src="/static/hglogo.png" alt="mercurial" /></a>
3316 <img src="/static/hglogo.png" alt="mercurial" /></a>
3317 </div>
3317 </div>
3318 <ul>
3318 <ul>
3319 <li><a href="/shortlog">log</a></li>
3319 <li><a href="/shortlog">log</a></li>
3320 <li><a href="/graph">graph</a></li>
3320 <li><a href="/graph">graph</a></li>
3321 <li><a href="/tags">tags</a></li>
3321 <li><a href="/tags">tags</a></li>
3322 <li><a href="/bookmarks">bookmarks</a></li>
3322 <li><a href="/bookmarks">bookmarks</a></li>
3323 <li><a href="/branches">branches</a></li>
3323 <li><a href="/branches">branches</a></li>
3324 </ul>
3324 </ul>
3325 <ul>
3325 <ul>
3326 <li class="active"><a href="/help">help</a></li>
3326 <li class="active"><a href="/help">help</a></li>
3327 </ul>
3327 </ul>
3328 </div>
3328 </div>
3329
3329
3330 <div class="main">
3330 <div class="main">
3331 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3331 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3332 <h3>Help: pager</h3>
3332 <h3>Help: pager</h3>
3333
3333
3334 <form class="search" action="/log">
3334 <form class="search" action="/log">
3335
3335
3336 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3336 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3337 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3337 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3338 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3338 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3339 </form>
3339 </form>
3340 <div id="doc">
3340 <div id="doc">
3341 <h1>Pager Support</h1>
3341 <h1>Pager Support</h1>
3342 <p>
3342 <p>
3343 Some Mercurial commands can produce a lot of output, and Mercurial will
3343 Some Mercurial commands can produce a lot of output, and Mercurial will
3344 attempt to use a pager to make those commands more pleasant.
3344 attempt to use a pager to make those commands more pleasant.
3345 </p>
3345 </p>
3346 <p>
3346 <p>
3347 To set the pager that should be used, set the application variable:
3347 To set the pager that should be used, set the application variable:
3348 </p>
3348 </p>
3349 <pre>
3349 <pre>
3350 [pager]
3350 [pager]
3351 pager = less -FRX
3351 pager = less -FRX
3352 </pre>
3352 </pre>
3353 <p>
3353 <p>
3354 If no pager is set in the user or repository configuration, Mercurial uses the
3354 If no pager is set in the user or repository configuration, Mercurial uses the
3355 environment variable $PAGER. If $PAGER is not set, pager.pager from the default
3355 environment variable $PAGER. If $PAGER is not set, pager.pager from the default
3356 or system configuration is used. If none of these are set, a default pager will
3356 or system configuration is used. If none of these are set, a default pager will
3357 be used, typically 'less' on Unix and 'more' on Windows.
3357 be used, typically 'less' on Unix and 'more' on Windows.
3358 </p>
3358 </p>
3359 <p>
3359 <p>
3360 You can disable the pager for certain commands by adding them to the
3360 You can disable the pager for certain commands by adding them to the
3361 pager.ignore list:
3361 pager.ignore list:
3362 </p>
3362 </p>
3363 <pre>
3363 <pre>
3364 [pager]
3364 [pager]
3365 ignore = version, help, update
3365 ignore = version, help, update
3366 </pre>
3366 </pre>
3367 <p>
3367 <p>
3368 To ignore global commands like 'hg version' or 'hg help', you have
3368 To ignore global commands like 'hg version' or 'hg help', you have
3369 to specify them in your user configuration file.
3369 to specify them in your user configuration file.
3370 </p>
3370 </p>
3371 <p>
3371 <p>
3372 To control whether the pager is used at all for an individual command,
3372 To control whether the pager is used at all for an individual command,
3373 you can use --pager=&lt;value&gt;:
3373 you can use --pager=&lt;value&gt;:
3374 </p>
3374 </p>
3375 <ul>
3375 <ul>
3376 <li> use as needed: 'auto'.
3376 <li> use as needed: 'auto'.
3377 <li> require the pager: 'yes' or 'on'.
3377 <li> require the pager: 'yes' or 'on'.
3378 <li> suppress the pager: 'no' or 'off' (any unrecognized value will also work).
3378 <li> suppress the pager: 'no' or 'off' (any unrecognized value will also work).
3379 </ul>
3379 </ul>
3380 <p>
3380 <p>
3381 To globally turn off all attempts to use a pager, set:
3381 To globally turn off all attempts to use a pager, set:
3382 </p>
3382 </p>
3383 <pre>
3383 <pre>
3384 [ui]
3384 [ui]
3385 paginate = never
3385 paginate = never
3386 </pre>
3386 </pre>
3387 <p>
3387 <p>
3388 which will prevent the pager from running.
3388 which will prevent the pager from running.
3389 </p>
3389 </p>
3390
3390
3391 </div>
3391 </div>
3392 </div>
3392 </div>
3393 </div>
3393 </div>
3394
3394
3395
3395
3396
3396
3397 </body>
3397 </body>
3398 </html>
3398 </html>
3399
3399
3400
3400
3401 Sub-topic indexes rendered properly
3401 Sub-topic indexes rendered properly
3402
3402
3403 $ get-with-headers.py $LOCALIP:$HGPORT "help/internals"
3403 $ get-with-headers.py $LOCALIP:$HGPORT "help/internals"
3404 200 Script output follows
3404 200 Script output follows
3405
3405
3406 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3406 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3407 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3407 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3408 <head>
3408 <head>
3409 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3409 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3410 <meta name="robots" content="index, nofollow" />
3410 <meta name="robots" content="index, nofollow" />
3411 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3411 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3412 <script type="text/javascript" src="/static/mercurial.js"></script>
3412 <script type="text/javascript" src="/static/mercurial.js"></script>
3413
3413
3414 <title>Help: internals</title>
3414 <title>Help: internals</title>
3415 </head>
3415 </head>
3416 <body>
3416 <body>
3417
3417
3418 <div class="container">
3418 <div class="container">
3419 <div class="menu">
3419 <div class="menu">
3420 <div class="logo">
3420 <div class="logo">
3421 <a href="https://mercurial-scm.org/">
3421 <a href="https://mercurial-scm.org/">
3422 <img src="/static/hglogo.png" alt="mercurial" /></a>
3422 <img src="/static/hglogo.png" alt="mercurial" /></a>
3423 </div>
3423 </div>
3424 <ul>
3424 <ul>
3425 <li><a href="/shortlog">log</a></li>
3425 <li><a href="/shortlog">log</a></li>
3426 <li><a href="/graph">graph</a></li>
3426 <li><a href="/graph">graph</a></li>
3427 <li><a href="/tags">tags</a></li>
3427 <li><a href="/tags">tags</a></li>
3428 <li><a href="/bookmarks">bookmarks</a></li>
3428 <li><a href="/bookmarks">bookmarks</a></li>
3429 <li><a href="/branches">branches</a></li>
3429 <li><a href="/branches">branches</a></li>
3430 </ul>
3430 </ul>
3431 <ul>
3431 <ul>
3432 <li><a href="/help">help</a></li>
3432 <li><a href="/help">help</a></li>
3433 </ul>
3433 </ul>
3434 </div>
3434 </div>
3435
3435
3436 <div class="main">
3436 <div class="main">
3437 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3437 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3438
3438
3439 <form class="search" action="/log">
3439 <form class="search" action="/log">
3440
3440
3441 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3441 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3442 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3442 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3443 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3443 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3444 </form>
3444 </form>
3445 <table class="bigtable">
3445 <table class="bigtable">
3446 <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr>
3446 <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr>
3447
3447
3448 <tr><td>
3448 <tr><td>
3449 <a href="/help/internals.bid-merge">
3449 <a href="/help/internals.bid-merge">
3450 bid-merge
3450 bid-merge
3451 </a>
3451 </a>
3452 </td><td>
3452 </td><td>
3453 Bid Merge Algorithm
3453 Bid Merge Algorithm
3454 </td></tr>
3454 </td></tr>
3455 <tr><td>
3455 <tr><td>
3456 <a href="/help/internals.bundle2">
3456 <a href="/help/internals.bundle2">
3457 bundle2
3457 bundle2
3458 </a>
3458 </a>
3459 </td><td>
3459 </td><td>
3460 Bundle2
3460 Bundle2
3461 </td></tr>
3461 </td></tr>
3462 <tr><td>
3462 <tr><td>
3463 <a href="/help/internals.bundles">
3463 <a href="/help/internals.bundles">
3464 bundles
3464 bundles
3465 </a>
3465 </a>
3466 </td><td>
3466 </td><td>
3467 Bundles
3467 Bundles
3468 </td></tr>
3468 </td></tr>
3469 <tr><td>
3469 <tr><td>
3470 <a href="/help/internals.cbor">
3470 <a href="/help/internals.cbor">
3471 cbor
3471 cbor
3472 </a>
3472 </a>
3473 </td><td>
3473 </td><td>
3474 CBOR
3474 CBOR
3475 </td></tr>
3475 </td></tr>
3476 <tr><td>
3476 <tr><td>
3477 <a href="/help/internals.censor">
3477 <a href="/help/internals.censor">
3478 censor
3478 censor
3479 </a>
3479 </a>
3480 </td><td>
3480 </td><td>
3481 Censor
3481 Censor
3482 </td></tr>
3482 </td></tr>
3483 <tr><td>
3483 <tr><td>
3484 <a href="/help/internals.changegroups">
3484 <a href="/help/internals.changegroups">
3485 changegroups
3485 changegroups
3486 </a>
3486 </a>
3487 </td><td>
3487 </td><td>
3488 Changegroups
3488 Changegroups
3489 </td></tr>
3489 </td></tr>
3490 <tr><td>
3490 <tr><td>
3491 <a href="/help/internals.config">
3491 <a href="/help/internals.config">
3492 config
3492 config
3493 </a>
3493 </a>
3494 </td><td>
3494 </td><td>
3495 Config Registrar
3495 Config Registrar
3496 </td></tr>
3496 </td></tr>
3497 <tr><td>
3497 <tr><td>
3498 <a href="/help/internals.extensions">
3498 <a href="/help/internals.extensions">
3499 extensions
3499 extensions
3500 </a>
3500 </a>
3501 </td><td>
3501 </td><td>
3502 Extension API
3502 Extension API
3503 </td></tr>
3503 </td></tr>
3504 <tr><td>
3504 <tr><td>
3505 <a href="/help/internals.mergestate">
3505 <a href="/help/internals.mergestate">
3506 mergestate
3506 mergestate
3507 </a>
3507 </a>
3508 </td><td>
3508 </td><td>
3509 Mergestate
3509 Mergestate
3510 </td></tr>
3510 </td></tr>
3511 <tr><td>
3511 <tr><td>
3512 <a href="/help/internals.requirements">
3512 <a href="/help/internals.requirements">
3513 requirements
3513 requirements
3514 </a>
3514 </a>
3515 </td><td>
3515 </td><td>
3516 Repository Requirements
3516 Repository Requirements
3517 </td></tr>
3517 </td></tr>
3518 <tr><td>
3518 <tr><td>
3519 <a href="/help/internals.revlogs">
3519 <a href="/help/internals.revlogs">
3520 revlogs
3520 revlogs
3521 </a>
3521 </a>
3522 </td><td>
3522 </td><td>
3523 Revision Logs
3523 Revision Logs
3524 </td></tr>
3524 </td></tr>
3525 <tr><td>
3525 <tr><td>
3526 <a href="/help/internals.wireprotocol">
3526 <a href="/help/internals.wireprotocol">
3527 wireprotocol
3527 wireprotocol
3528 </a>
3528 </a>
3529 </td><td>
3529 </td><td>
3530 Wire Protocol
3530 Wire Protocol
3531 </td></tr>
3531 </td></tr>
3532 <tr><td>
3532 <tr><td>
3533 <a href="/help/internals.wireprotocolrpc">
3533 <a href="/help/internals.wireprotocolrpc">
3534 wireprotocolrpc
3534 wireprotocolrpc
3535 </a>
3535 </a>
3536 </td><td>
3536 </td><td>
3537 Wire Protocol RPC
3537 Wire Protocol RPC
3538 </td></tr>
3538 </td></tr>
3539 <tr><td>
3539 <tr><td>
3540 <a href="/help/internals.wireprotocolv2">
3540 <a href="/help/internals.wireprotocolv2">
3541 wireprotocolv2
3541 wireprotocolv2
3542 </a>
3542 </a>
3543 </td><td>
3543 </td><td>
3544 Wire Protocol Version 2
3544 Wire Protocol Version 2
3545 </td></tr>
3545 </td></tr>
3546
3546
3547
3547
3548
3548
3549
3549
3550
3550
3551 </table>
3551 </table>
3552 </div>
3552 </div>
3553 </div>
3553 </div>
3554
3554
3555
3555
3556
3556
3557 </body>
3557 </body>
3558 </html>
3558 </html>
3559
3559
3560
3560
3561 Sub-topic topics rendered properly
3561 Sub-topic topics rendered properly
3562
3562
3563 $ get-with-headers.py $LOCALIP:$HGPORT "help/internals.changegroups"
3563 $ get-with-headers.py $LOCALIP:$HGPORT "help/internals.changegroups"
3564 200 Script output follows
3564 200 Script output follows
3565
3565
3566 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3566 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3567 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3567 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3568 <head>
3568 <head>
3569 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3569 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3570 <meta name="robots" content="index, nofollow" />
3570 <meta name="robots" content="index, nofollow" />
3571 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3571 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3572 <script type="text/javascript" src="/static/mercurial.js"></script>
3572 <script type="text/javascript" src="/static/mercurial.js"></script>
3573
3573
3574 <title>Help: internals.changegroups</title>
3574 <title>Help: internals.changegroups</title>
3575 </head>
3575 </head>
3576 <body>
3576 <body>
3577
3577
3578 <div class="container">
3578 <div class="container">
3579 <div class="menu">
3579 <div class="menu">
3580 <div class="logo">
3580 <div class="logo">
3581 <a href="https://mercurial-scm.org/">
3581 <a href="https://mercurial-scm.org/">
3582 <img src="/static/hglogo.png" alt="mercurial" /></a>
3582 <img src="/static/hglogo.png" alt="mercurial" /></a>
3583 </div>
3583 </div>
3584 <ul>
3584 <ul>
3585 <li><a href="/shortlog">log</a></li>
3585 <li><a href="/shortlog">log</a></li>
3586 <li><a href="/graph">graph</a></li>
3586 <li><a href="/graph">graph</a></li>
3587 <li><a href="/tags">tags</a></li>
3587 <li><a href="/tags">tags</a></li>
3588 <li><a href="/bookmarks">bookmarks</a></li>
3588 <li><a href="/bookmarks">bookmarks</a></li>
3589 <li><a href="/branches">branches</a></li>
3589 <li><a href="/branches">branches</a></li>
3590 </ul>
3590 </ul>
3591 <ul>
3591 <ul>
3592 <li class="active"><a href="/help">help</a></li>
3592 <li class="active"><a href="/help">help</a></li>
3593 </ul>
3593 </ul>
3594 </div>
3594 </div>
3595
3595
3596 <div class="main">
3596 <div class="main">
3597 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3597 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3598 <h3>Help: internals.changegroups</h3>
3598 <h3>Help: internals.changegroups</h3>
3599
3599
3600 <form class="search" action="/log">
3600 <form class="search" action="/log">
3601
3601
3602 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3602 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3603 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3603 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3604 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3604 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3605 </form>
3605 </form>
3606 <div id="doc">
3606 <div id="doc">
3607 <h1>Changegroups</h1>
3607 <h1>Changegroups</h1>
3608 <p>
3608 <p>
3609 Changegroups are representations of repository revlog data, specifically
3609 Changegroups are representations of repository revlog data, specifically
3610 the changelog data, root/flat manifest data, treemanifest data, and
3610 the changelog data, root/flat manifest data, treemanifest data, and
3611 filelogs.
3611 filelogs.
3612 </p>
3612 </p>
3613 <p>
3613 <p>
3614 There are 3 versions of changegroups: &quot;1&quot;, &quot;2&quot;, and &quot;3&quot;. From a
3614 There are 3 versions of changegroups: &quot;1&quot;, &quot;2&quot;, and &quot;3&quot;. From a
3615 high-level, versions &quot;1&quot; and &quot;2&quot; are almost exactly the same, with the
3615 high-level, versions &quot;1&quot; and &quot;2&quot; are almost exactly the same, with the
3616 only difference being an additional item in the *delta header*. Version
3616 only difference being an additional item in the *delta header*. Version
3617 &quot;3&quot; adds support for storage flags in the *delta header* and optionally
3617 &quot;3&quot; adds support for storage flags in the *delta header* and optionally
3618 exchanging treemanifests (enabled by setting an option on the
3618 exchanging treemanifests (enabled by setting an option on the
3619 &quot;changegroup&quot; part in the bundle2).
3619 &quot;changegroup&quot; part in the bundle2).
3620 </p>
3620 </p>
3621 <p>
3621 <p>
3622 Changegroups when not exchanging treemanifests consist of 3 logical
3622 Changegroups when not exchanging treemanifests consist of 3 logical
3623 segments:
3623 segments:
3624 </p>
3624 </p>
3625 <pre>
3625 <pre>
3626 +---------------------------------+
3626 +---------------------------------+
3627 | | | |
3627 | | | |
3628 | changeset | manifest | filelogs |
3628 | changeset | manifest | filelogs |
3629 | | | |
3629 | | | |
3630 | | | |
3630 | | | |
3631 +---------------------------------+
3631 +---------------------------------+
3632 </pre>
3632 </pre>
3633 <p>
3633 <p>
3634 When exchanging treemanifests, there are 4 logical segments:
3634 When exchanging treemanifests, there are 4 logical segments:
3635 </p>
3635 </p>
3636 <pre>
3636 <pre>
3637 +-------------------------------------------------+
3637 +-------------------------------------------------+
3638 | | | | |
3638 | | | | |
3639 | changeset | root | treemanifests | filelogs |
3639 | changeset | root | treemanifests | filelogs |
3640 | | manifest | | |
3640 | | manifest | | |
3641 | | | | |
3641 | | | | |
3642 +-------------------------------------------------+
3642 +-------------------------------------------------+
3643 </pre>
3643 </pre>
3644 <p>
3644 <p>
3645 The principle building block of each segment is a *chunk*. A *chunk*
3645 The principle building block of each segment is a *chunk*. A *chunk*
3646 is a framed piece of data:
3646 is a framed piece of data:
3647 </p>
3647 </p>
3648 <pre>
3648 <pre>
3649 +---------------------------------------+
3649 +---------------------------------------+
3650 | | |
3650 | | |
3651 | length | data |
3651 | length | data |
3652 | (4 bytes) | (&lt;length - 4&gt; bytes) |
3652 | (4 bytes) | (&lt;length - 4&gt; bytes) |
3653 | | |
3653 | | |
3654 +---------------------------------------+
3654 +---------------------------------------+
3655 </pre>
3655 </pre>
3656 <p>
3656 <p>
3657 All integers are big-endian signed integers. Each chunk starts with a 32-bit
3657 All integers are big-endian signed integers. Each chunk starts with a 32-bit
3658 integer indicating the length of the entire chunk (including the length field
3658 integer indicating the length of the entire chunk (including the length field
3659 itself).
3659 itself).
3660 </p>
3660 </p>
3661 <p>
3661 <p>
3662 There is a special case chunk that has a value of 0 for the length
3662 There is a special case chunk that has a value of 0 for the length
3663 (&quot;0x00000000&quot;). We call this an *empty chunk*.
3663 (&quot;0x00000000&quot;). We call this an *empty chunk*.
3664 </p>
3664 </p>
3665 <h2>Delta Groups</h2>
3665 <h2>Delta Groups</h2>
3666 <p>
3666 <p>
3667 A *delta group* expresses the content of a revlog as a series of deltas,
3667 A *delta group* expresses the content of a revlog as a series of deltas,
3668 or patches against previous revisions.
3668 or patches against previous revisions.
3669 </p>
3669 </p>
3670 <p>
3670 <p>
3671 Delta groups consist of 0 or more *chunks* followed by the *empty chunk*
3671 Delta groups consist of 0 or more *chunks* followed by the *empty chunk*
3672 to signal the end of the delta group:
3672 to signal the end of the delta group:
3673 </p>
3673 </p>
3674 <pre>
3674 <pre>
3675 +------------------------------------------------------------------------+
3675 +------------------------------------------------------------------------+
3676 | | | | | |
3676 | | | | | |
3677 | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 |
3677 | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 |
3678 | (4 bytes) | (various) | (4 bytes) | (various) | (4 bytes) |
3678 | (4 bytes) | (various) | (4 bytes) | (various) | (4 bytes) |
3679 | | | | | |
3679 | | | | | |
3680 +------------------------------------------------------------------------+
3680 +------------------------------------------------------------------------+
3681 </pre>
3681 </pre>
3682 <p>
3682 <p>
3683 Each *chunk*'s data consists of the following:
3683 Each *chunk*'s data consists of the following:
3684 </p>
3684 </p>
3685 <pre>
3685 <pre>
3686 +---------------------------------------+
3686 +---------------------------------------+
3687 | | |
3687 | | |
3688 | delta header | delta data |
3688 | delta header | delta data |
3689 | (various by version) | (various) |
3689 | (various by version) | (various) |
3690 | | |
3690 | | |
3691 +---------------------------------------+
3691 +---------------------------------------+
3692 </pre>
3692 </pre>
3693 <p>
3693 <p>
3694 The *delta data* is a series of *delta*s that describe a diff from an existing
3694 The *delta data* is a series of *delta*s that describe a diff from an existing
3695 entry (either that the recipient already has, or previously specified in the
3695 entry (either that the recipient already has, or previously specified in the
3696 bundle/changegroup).
3696 bundle/changegroup).
3697 </p>
3697 </p>
3698 <p>
3698 <p>
3699 The *delta header* is different between versions &quot;1&quot;, &quot;2&quot;, and
3699 The *delta header* is different between versions &quot;1&quot;, &quot;2&quot;, and
3700 &quot;3&quot; of the changegroup format.
3700 &quot;3&quot; of the changegroup format.
3701 </p>
3701 </p>
3702 <p>
3702 <p>
3703 Version 1 (headerlen=80):
3703 Version 1 (headerlen=80):
3704 </p>
3704 </p>
3705 <pre>
3705 <pre>
3706 +------------------------------------------------------+
3706 +------------------------------------------------------+
3707 | | | | |
3707 | | | | |
3708 | node | p1 node | p2 node | link node |
3708 | node | p1 node | p2 node | link node |
3709 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) |
3709 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) |
3710 | | | | |
3710 | | | | |
3711 +------------------------------------------------------+
3711 +------------------------------------------------------+
3712 </pre>
3712 </pre>
3713 <p>
3713 <p>
3714 Version 2 (headerlen=100):
3714 Version 2 (headerlen=100):
3715 </p>
3715 </p>
3716 <pre>
3716 <pre>
3717 +------------------------------------------------------------------+
3717 +------------------------------------------------------------------+
3718 | | | | | |
3718 | | | | | |
3719 | node | p1 node | p2 node | base node | link node |
3719 | node | p1 node | p2 node | base node | link node |
3720 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) |
3720 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) |
3721 | | | | | |
3721 | | | | | |
3722 +------------------------------------------------------------------+
3722 +------------------------------------------------------------------+
3723 </pre>
3723 </pre>
3724 <p>
3724 <p>
3725 Version 3 (headerlen=102):
3725 Version 3 (headerlen=102):
3726 </p>
3726 </p>
3727 <pre>
3727 <pre>
3728 +------------------------------------------------------------------------------+
3728 +------------------------------------------------------------------------------+
3729 | | | | | | |
3729 | | | | | | |
3730 | node | p1 node | p2 node | base node | link node | flags |
3730 | node | p1 node | p2 node | base node | link node | flags |
3731 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) |
3731 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) |
3732 | | | | | | |
3732 | | | | | | |
3733 +------------------------------------------------------------------------------+
3733 +------------------------------------------------------------------------------+
3734 </pre>
3734 </pre>
3735 <p>
3735 <p>
3736 The *delta data* consists of &quot;chunklen - 4 - headerlen&quot; bytes, which contain a
3736 The *delta data* consists of &quot;chunklen - 4 - headerlen&quot; bytes, which contain a
3737 series of *delta*s, densely packed (no separators). These deltas describe a diff
3737 series of *delta*s, densely packed (no separators). These deltas describe a diff
3738 from an existing entry (either that the recipient already has, or previously
3738 from an existing entry (either that the recipient already has, or previously
3739 specified in the bundle/changegroup). The format is described more fully in
3739 specified in the bundle/changegroup). The format is described more fully in
3740 &quot;hg help internals.bdiff&quot;, but briefly:
3740 &quot;hg help internals.bdiff&quot;, but briefly:
3741 </p>
3741 </p>
3742 <pre>
3742 <pre>
3743 +---------------------------------------------------------------+
3743 +---------------------------------------------------------------+
3744 | | | | |
3744 | | | | |
3745 | start offset | end offset | new length | content |
3745 | start offset | end offset | new length | content |
3746 | (4 bytes) | (4 bytes) | (4 bytes) | (&lt;new length&gt; bytes) |
3746 | (4 bytes) | (4 bytes) | (4 bytes) | (&lt;new length&gt; bytes) |
3747 | | | | |
3747 | | | | |
3748 +---------------------------------------------------------------+
3748 +---------------------------------------------------------------+
3749 </pre>
3749 </pre>
3750 <p>
3750 <p>
3751 Please note that the length field in the delta data does *not* include itself.
3751 Please note that the length field in the delta data does *not* include itself.
3752 </p>
3752 </p>
3753 <p>
3753 <p>
3754 In version 1, the delta is always applied against the previous node from
3754 In version 1, the delta is always applied against the previous node from
3755 the changegroup or the first parent if this is the first entry in the
3755 the changegroup or the first parent if this is the first entry in the
3756 changegroup.
3756 changegroup.
3757 </p>
3757 </p>
3758 <p>
3758 <p>
3759 In version 2 and up, the delta base node is encoded in the entry in the
3759 In version 2 and up, the delta base node is encoded in the entry in the
3760 changegroup. This allows the delta to be expressed against any parent,
3760 changegroup. This allows the delta to be expressed against any parent,
3761 which can result in smaller deltas and more efficient encoding of data.
3761 which can result in smaller deltas and more efficient encoding of data.
3762 </p>
3762 </p>
3763 <p>
3763 <p>
3764 The *flags* field holds bitwise flags affecting the processing of revision
3764 The *flags* field holds bitwise flags affecting the processing of revision
3765 data. The following flags are defined:
3765 data. The following flags are defined:
3766 </p>
3766 </p>
3767 <dl>
3767 <dl>
3768 <dt>32768
3768 <dt>32768
3769 <dd>Censored revision. The revision's fulltext has been replaced by censor metadata. May only occur on file revisions.
3769 <dd>Censored revision. The revision's fulltext has been replaced by censor metadata. May only occur on file revisions.
3770 <dt>16384
3770 <dt>16384
3771 <dd>Ellipsis revision. Revision hash does not match data (likely due to rewritten parents).
3771 <dd>Ellipsis revision. Revision hash does not match data (likely due to rewritten parents).
3772 <dt>8192
3772 <dt>8192
3773 <dd>Externally stored. The revision fulltext contains &quot;key:value&quot; &quot;\n&quot; delimited metadata defining an object stored elsewhere. Used by the LFS extension.
3773 <dd>Externally stored. The revision fulltext contains &quot;key:value&quot; &quot;\n&quot; delimited metadata defining an object stored elsewhere. Used by the LFS extension.
3774 </dl>
3774 </dl>
3775 <p>
3775 <p>
3776 For historical reasons, the integer values are identical to revlog version 1
3776 For historical reasons, the integer values are identical to revlog version 1
3777 per-revision storage flags and correspond to bits being set in this 2-byte
3777 per-revision storage flags and correspond to bits being set in this 2-byte
3778 field. Bits were allocated starting from the most-significant bit, hence the
3778 field. Bits were allocated starting from the most-significant bit, hence the
3779 reverse ordering and allocation of these flags.
3779 reverse ordering and allocation of these flags.
3780 </p>
3780 </p>
3781 <h2>Changeset Segment</h2>
3781 <h2>Changeset Segment</h2>
3782 <p>
3782 <p>
3783 The *changeset segment* consists of a single *delta group* holding
3783 The *changeset segment* consists of a single *delta group* holding
3784 changelog data. The *empty chunk* at the end of the *delta group* denotes
3784 changelog data. The *empty chunk* at the end of the *delta group* denotes
3785 the boundary to the *manifest segment*.
3785 the boundary to the *manifest segment*.
3786 </p>
3786 </p>
3787 <h2>Manifest Segment</h2>
3787 <h2>Manifest Segment</h2>
3788 <p>
3788 <p>
3789 The *manifest segment* consists of a single *delta group* holding manifest
3789 The *manifest segment* consists of a single *delta group* holding manifest
3790 data. If treemanifests are in use, it contains only the manifest for the
3790 data. If treemanifests are in use, it contains only the manifest for the
3791 root directory of the repository. Otherwise, it contains the entire
3791 root directory of the repository. Otherwise, it contains the entire
3792 manifest data. The *empty chunk* at the end of the *delta group* denotes
3792 manifest data. The *empty chunk* at the end of the *delta group* denotes
3793 the boundary to the next segment (either the *treemanifests segment* or the
3793 the boundary to the next segment (either the *treemanifests segment* or the
3794 *filelogs segment*, depending on version and the request options).
3794 *filelogs segment*, depending on version and the request options).
3795 </p>
3795 </p>
3796 <h3>Treemanifests Segment</h3>
3796 <h3>Treemanifests Segment</h3>
3797 <p>
3797 <p>
3798 The *treemanifests segment* only exists in changegroup version &quot;3&quot;, and
3798 The *treemanifests segment* only exists in changegroup version &quot;3&quot;, and
3799 only if the 'treemanifest' param is part of the bundle2 changegroup part
3799 only if the 'treemanifest' param is part of the bundle2 changegroup part
3800 (it is not possible to use changegroup version 3 outside of bundle2).
3800 (it is not possible to use changegroup version 3 outside of bundle2).
3801 Aside from the filenames in the *treemanifests segment* containing a
3801 Aside from the filenames in the *treemanifests segment* containing a
3802 trailing &quot;/&quot; character, it behaves identically to the *filelogs segment*
3802 trailing &quot;/&quot; character, it behaves identically to the *filelogs segment*
3803 (see below). The final sub-segment is followed by an *empty chunk* (logically,
3803 (see below). The final sub-segment is followed by an *empty chunk* (logically,
3804 a sub-segment with filename size 0). This denotes the boundary to the
3804 a sub-segment with filename size 0). This denotes the boundary to the
3805 *filelogs segment*.
3805 *filelogs segment*.
3806 </p>
3806 </p>
3807 <h2>Filelogs Segment</h2>
3807 <h2>Filelogs Segment</h2>
3808 <p>
3808 <p>
3809 The *filelogs segment* consists of multiple sub-segments, each
3809 The *filelogs segment* consists of multiple sub-segments, each
3810 corresponding to an individual file whose data is being described:
3810 corresponding to an individual file whose data is being described:
3811 </p>
3811 </p>
3812 <pre>
3812 <pre>
3813 +--------------------------------------------------+
3813 +--------------------------------------------------+
3814 | | | | | |
3814 | | | | | |
3815 | filelog0 | filelog1 | filelog2 | ... | 0x0 |
3815 | filelog0 | filelog1 | filelog2 | ... | 0x0 |
3816 | | | | | (4 bytes) |
3816 | | | | | (4 bytes) |
3817 | | | | | |
3817 | | | | | |
3818 +--------------------------------------------------+
3818 +--------------------------------------------------+
3819 </pre>
3819 </pre>
3820 <p>
3820 <p>
3821 The final filelog sub-segment is followed by an *empty chunk* (logically,
3821 The final filelog sub-segment is followed by an *empty chunk* (logically,
3822 a sub-segment with filename size 0). This denotes the end of the segment
3822 a sub-segment with filename size 0). This denotes the end of the segment
3823 and of the overall changegroup.
3823 and of the overall changegroup.
3824 </p>
3824 </p>
3825 <p>
3825 <p>
3826 Each filelog sub-segment consists of the following:
3826 Each filelog sub-segment consists of the following:
3827 </p>
3827 </p>
3828 <pre>
3828 <pre>
3829 +------------------------------------------------------+
3829 +------------------------------------------------------+
3830 | | | |
3830 | | | |
3831 | filename length | filename | delta group |
3831 | filename length | filename | delta group |
3832 | (4 bytes) | (&lt;length - 4&gt; bytes) | (various) |
3832 | (4 bytes) | (&lt;length - 4&gt; bytes) | (various) |
3833 | | | |
3833 | | | |
3834 +------------------------------------------------------+
3834 +------------------------------------------------------+
3835 </pre>
3835 </pre>
3836 <p>
3836 <p>
3837 That is, a *chunk* consisting of the filename (not terminated or padded)
3837 That is, a *chunk* consisting of the filename (not terminated or padded)
3838 followed by N chunks constituting the *delta group* for this file. The
3838 followed by N chunks constituting the *delta group* for this file. The
3839 *empty chunk* at the end of each *delta group* denotes the boundary to the
3839 *empty chunk* at the end of each *delta group* denotes the boundary to the
3840 next filelog sub-segment.
3840 next filelog sub-segment.
3841 </p>
3841 </p>
3842
3842
3843 </div>
3843 </div>
3844 </div>
3844 </div>
3845 </div>
3845 </div>
3846
3846
3847
3847
3848
3848
3849 </body>
3849 </body>
3850 </html>
3850 </html>
3851
3851
3852
3852
3853 $ get-with-headers.py 127.0.0.1:$HGPORT "help/unknowntopic"
3853 $ get-with-headers.py 127.0.0.1:$HGPORT "help/unknowntopic"
3854 404 Not Found
3854 404 Not Found
3855
3855
3856 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3856 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3857 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3857 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
3858 <head>
3858 <head>
3859 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3859 <link rel="icon" href="/static/hgicon.png" type="image/png" />
3860 <meta name="robots" content="index, nofollow" />
3860 <meta name="robots" content="index, nofollow" />
3861 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3861 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
3862 <script type="text/javascript" src="/static/mercurial.js"></script>
3862 <script type="text/javascript" src="/static/mercurial.js"></script>
3863
3863
3864 <title>test: error</title>
3864 <title>test: error</title>
3865 </head>
3865 </head>
3866 <body>
3866 <body>
3867
3867
3868 <div class="container">
3868 <div class="container">
3869 <div class="menu">
3869 <div class="menu">
3870 <div class="logo">
3870 <div class="logo">
3871 <a href="https://mercurial-scm.org/">
3871 <a href="https://mercurial-scm.org/">
3872 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
3872 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
3873 </div>
3873 </div>
3874 <ul>
3874 <ul>
3875 <li><a href="/shortlog">log</a></li>
3875 <li><a href="/shortlog">log</a></li>
3876 <li><a href="/graph">graph</a></li>
3876 <li><a href="/graph">graph</a></li>
3877 <li><a href="/tags">tags</a></li>
3877 <li><a href="/tags">tags</a></li>
3878 <li><a href="/bookmarks">bookmarks</a></li>
3878 <li><a href="/bookmarks">bookmarks</a></li>
3879 <li><a href="/branches">branches</a></li>
3879 <li><a href="/branches">branches</a></li>
3880 </ul>
3880 </ul>
3881 <ul>
3881 <ul>
3882 <li><a href="/help">help</a></li>
3882 <li><a href="/help">help</a></li>
3883 </ul>
3883 </ul>
3884 </div>
3884 </div>
3885
3885
3886 <div class="main">
3886 <div class="main">
3887
3887
3888 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3888 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
3889 <h3>error</h3>
3889 <h3>error</h3>
3890
3890
3891
3891
3892 <form class="search" action="/log">
3892 <form class="search" action="/log">
3893
3893
3894 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3894 <p><input name="rev" id="search1" type="text" size="30" value="" /></p>
3895 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3895 <div id="hint">Find changesets by keywords (author, files, the commit message), revision
3896 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3896 number or hash, or <a href="/help/revsets">revset expression</a>.</div>
3897 </form>
3897 </form>
3898
3898
3899 <div class="description">
3899 <div class="description">
3900 <p>
3900 <p>
3901 An error occurred while processing your request:
3901 An error occurred while processing your request:
3902 </p>
3902 </p>
3903 <p>
3903 <p>
3904 Not Found
3904 Not Found
3905 </p>
3905 </p>
3906 </div>
3906 </div>
3907 </div>
3907 </div>
3908 </div>
3908 </div>
3909
3909
3910
3910
3911
3911
3912 </body>
3912 </body>
3913 </html>
3913 </html>
3914
3914
3915 [1]
3915 [1]
3916
3916
3917 $ killdaemons.py
3917 $ killdaemons.py
3918
3918
3919 #endif
3919 #endif
General Comments 0
You need to be logged in to leave comments. Login now