Mercurial > hg > mercurial-crew-with-dirclash
annotate doc/hg.1.txt @ 537:411e05b04ffa
Propagate file list through dodiff
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Propagate file list through dodiff
This speeds up operations like 'hg diff Makefile'. Previously it would
walk the entire directory tree looking for changes. Now it will only
stat Makefile. Further, if Makefile appears untouched, it will skip
reading the manifest.
manifest hash: ab22a70a5511ed2d7a647f2cd15d129a88dccabf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxNRyywK+sNU5EO8RAgb6AKC2TzWmRjNsWq0Q9Pa+ppCZ6Y+pdwCfdHUA
UHu024/2Wt6C6WZ5vcWfPbo=
=E35L
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Thu, 30 Jun 2005 21:28:18 -0800 |
parents | 003df62ae39f |
children | 2204311609a0 f2442a6a5893 |
rev | line source |
---|---|
177 | 1 HG(1) |
2 ===== | |
3 Matt Mackall <mpm@selenic.com> | |
4 | |
5 NAME | |
6 ---- | |
438 | 7 hg - Mercurial source code management system |
177 | 8 |
9 SYNOPSIS | |
10 -------- | |
11 'hg' [-v -d -q -y] <command> [command options] [files] | |
12 | |
13 DESCRIPTION | |
14 ----------- | |
15 The hg(1) command provides a command line interface to the Mercurial system. | |
16 | |
17 OPTIONS | |
18 ------- | |
438 | 19 |
177 | 20 --debug, -d:: |
21 enable debugging output | |
22 | |
23 --quiet, -q:: | |
24 suppress output | |
25 | |
26 --verbose, -v:: | |
27 enable additional output | |
28 | |
29 --noninteractive, -y:: | |
30 do not prompt, assume 'yes' for any required answers | |
31 | |
32 COMMAND ELEMENTS | |
33 ---------------- | |
34 | |
35 files ...:: | |
36 indicates one or more filename or relative path filenames | |
37 | |
38 path:: | |
39 indicates a path on the local machine | |
40 | |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
41 revision:: |
438 | 42 indicates a changeset which can be specified as a changeset revision |
43 number, a tag, or a unique substring of the changeset hash value | |
177 | 44 |
45 repository path:: | |
498 | 46 either the pathname of a local repository or the URI of a remote |
181
038e4d8602bd
updated for .hgpaths and http/old-http protocol name change
jake@edge2.net
parents:
177
diff
changeset
|
47 repository. There are two available URI protocols, http:// which is |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
48 fast and the old-http:// protocol which is much slower but does not |
438 | 49 require a special server on the web host. |
177 | 50 |
51 COMMANDS | |
52 -------- | |
438 | 53 |
177 | 54 add [files ...]:: |
497 | 55 Schedule files to be version controlled and added to the repository. |
56 | |
498 | 57 The files will be added to the repository at the next commit. |
177 | 58 |
59 addremove:: | |
497 | 60 Add all new files and remove all missing files from the repository. |
61 | |
62 New files are ignored if they match any of the patterns in .hgignore. As | |
498 | 63 with add, these changes take effect at the next commit. |
177 | 64 |
438 | 65 annotate [-r <rev> -u -n -c] [files ...]:: |
497 | 66 List changes in files, showing the revision id responsible for each line |
67 | |
68 This command is useful to discover who did a change or when a change took | |
69 place. | |
70 | |
438 | 71 options: |
72 -r, --revision <rev> annotate the specified revision | |
73 -u, --user list the author | |
74 -c, --changeset list the changeset | |
75 -n, --number list the revision number (default) | |
177 | 76 |
438 | 77 cat <file> [revision]:: |
497 | 78 Output to stdout the given revision for the specified file. |
79 | |
498 | 80 If no revision is given then the tip is used. |
177 | 81 |
485 | 82 clone [-U] <source> [dest]:: |
497 | 83 Create a copy of an existing repository in a new directory. |
84 | |
523
003df62ae39f
[PATCH] Force "hg clone" to always create a new directory
mpm@selenic.com
parents:
509
diff
changeset
|
85 If no destination directory name is specified, it defaults to the |
003df62ae39f
[PATCH] Force "hg clone" to always create a new directory
mpm@selenic.com
parents:
509
diff
changeset
|
86 basename of the source. |
497 | 87 |
498 | 88 The source is added to the new repository's .hg/hgrc file to be used in |
497 | 89 future pulls. |
90 | |
498 | 91 For efficiency, hardlinks are used for cloning whenever the |
92 source and destination are on the same filesystem. | |
497 | 93 |
94 options: | |
505 | 95 -U, --noupdate do not update the new working directory |
497 | 96 |
97 commit [-A -t -l <file> -t <text> -u <user> -d <datecode>] [files...]:: | |
498 | 98 Commit changes to the given files into the repository. |
497 | 99 |
498 | 100 If a list of files is omitted, all changes reported by "hg status" |
101 will be commited. | |
497 | 102 |
498 | 103 The HGEDITOR or EDITOR environment variables are used to start an |
104 editor to add a commit comment. | |
497 | 105 |
106 Options: | |
107 | |
108 -A, --addremove run addremove during commit | |
109 -t, --text <text> use <text> as commit message | |
110 -l, --logfile <file> show the commit message for the given file | |
111 -d, --date <datecode> record datecode as commit date | |
112 -u, --user <user> record user as commiter | |
113 | |
114 aliases: ci | |
115 | |
116 copy <source> <dest>:: | |
117 Mark <dest> file as a copy or rename of a <source> one | |
118 | |
119 This command takes effect for the next commit. | |
120 | |
121 diff [-r revision] [-r revision] [files ...]:: | |
122 Show differences between revisions for the specified files. | |
123 | |
124 Differences between files are shown using the unified diff format. | |
125 | |
498 | 126 When two revision arguments are given, then changes are shown |
127 between those revisions. If only one revision is specified then | |
128 that revision is compared to the working directory, and, when no | |
129 revisions are specified, the working directory files are compared | |
130 to its parent. | |
497 | 131 |
132 export [revision]:: | |
133 Print the changeset header and diffs for a particular revision. | |
134 | |
135 The information shown in the changeset header is: author, changeset hash, | |
136 parent and commit comment. | |
137 | |
138 forget [files]:: | |
139 Undo an 'hg add' scheduled for the next commit. | |
140 | |
141 heads:: | |
142 Show all repository head changesets. | |
143 | |
498 | 144 Repository "heads" are changesets that don't have children |
145 changesets. They are where development generally takes place and | |
146 are the usual targets for update and merge operations. | |
497 | 147 |
148 identify:: | |
149 Print a short summary of the current state of the repo. | |
150 | |
151 This summary identifies the repository state using one or two parent | |
152 hash identifiers, followed by a "+" if there are uncommitted changes | |
153 in the working directory, followed by a list of tags for this revision. | |
154 | |
155 aliases: id | |
156 | |
157 import [-p <n> -b <base> -q] <patches>:: | |
158 Import a list of patches and commit them individually. | |
159 | |
160 options: | |
161 -p, --strip <n> directory strip option for patch. This has the same | |
162 meaning as the correnponding patch option | |
163 -b <path> base directory to read patches from | |
164 | |
165 aliases: patch | |
166 | |
496 | 167 init:: |
168 Initialize a new repository in the current directory. | |
177 | 169 |
509 | 170 log [file]:: |
171 Print the revision history of the specified file or the entire project. | |
177 | 172 |
509 | 173 By default this command outputs: changeset id and hash, tags, |
174 parents, user, date and time, and a summary for each commit. The | |
175 -v switch adds some more detail, such as changed files, manifest | |
176 hashes or message signatures. | |
177 | |
178 aliases: history | |
497 | 179 |
438 | 180 manifest [revision]:: |
497 | 181 Print a list of version controlled files for the given revision. |
182 | |
183 The manifest is the list of files being version controlled. If no revision | |
184 is given then the tip is used. | |
438 | 185 |
186 parents:: | |
187 Print the working directory's parent revisions. | |
188 | |
189 pull <repository path>:: | |
498 | 190 Pull changes from a remote repository to a local one. |
497 | 191 |
498 | 192 This finds all changes from the repository at the specified path |
193 or URL and adds them to the local repository. By default, this | |
194 does not update the copy of the project in the working directory. | |
438 | 195 |
196 options: | |
197 -u, --update update the working directory to tip after pull | |
198 | |
199 push <destination>:: | |
497 | 200 Push changes from the local repository to the given destination. |
201 | |
498 | 202 This is the symmetrical operation for pull. It helps to move |
203 changes from the current repository to a different one. If the | |
204 destination is local this is identical to a pull in that directory | |
205 from the current one. | |
438 | 206 |
207 The other currently available push method is SSH. This requires an | |
208 accessible shell account on the destination machine and a copy of | |
209 hg in the remote path. Destinations are specified in the following | |
210 form: | |
211 | |
212 ssh://[user@]host[:port]/path | |
213 | |
214 rawcommit [-p -d -u -F -t -l]:: | |
497 | 215 Lowlevel commit, for use in helper scripts. |
216 | |
217 This command is not intended to be used by normal users, as it is | |
218 primarily useful for importing from other SCMs. | |
177 | 219 |
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
220 recover:: |
497 | 221 Recover from an interrupted commit or pull. |
222 | |
223 This command tries to fix the repository status after an interrupted | |
224 operation. It should only be necessary when Mercurial suggests it. | |
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
225 |
177 | 226 remove [files ...]:: |
497 | 227 Schedule the indicated files for removal from the repository. |
228 | |
498 | 229 This command shedules the files to be removed at the next commit. |
230 This only removes files from the current branch, not from the | |
231 entire project history. | |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
232 |
438 | 233 aliases: rm |
177 | 234 |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
235 root:: |
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
236 Print the root directory of the current repository. |
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
237 |
177 | 238 serve [-a addr -n name -p port -t templatedir]:: |
438 | 239 Start a local HTTP repository browser and pull server. |
240 | |
241 options: | |
242 -a, --address <addr> address to use | |
243 -p, --port <n> port to use (default: 8000) | |
244 -n, --name <name> name to show in web pages (default: working dir) | |
245 -t, --templatedir <path> web templates to use | |
177 | 246 |
247 status:: | |
438 | 248 Show changed files in the working directory. |
249 | |
497 | 250 The codes used to show the status of files are: |
251 | |
438 | 252 C = changed |
253 A = added | |
254 R = removed | |
255 ? = not tracked | |
256 | |
257 tag [-t <text> -d <datecode> -u <user>] <name> [revision]:: | |
497 | 258 Name a particular revision using <name>. |
259 | |
260 Tags are used to name particular revisions of the repository and are | |
261 very useful to compare different revision, to go back to significant | |
498 | 262 earlier versions or to mark branch points as releases, etc. |
497 | 263 |
498 | 264 If no revision is given, the tip is used. |
438 | 265 |
498 | 266 To facilitate version control, distribution, and merging of tags, |
267 they are stored as a file named ".hgtags" which is managed | |
268 similarly to other project files and can be hand-edited if | |
269 necessary. | |
270 | |
438 | 271 options: |
272 -t, --text <text> message for tag commit log entry | |
273 -d, --date <datecode> datecode for commit | |
274 -u, --user <user> user for commit | |
177 | 275 |
498 | 276 Note: Mercurial also has support for "local tags" that are not |
277 version-controlled or distributed which are stored in the .hg/hgrc | |
278 file. | |
279 | |
177 | 280 tags:: |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
281 List the repository tags. |
438 | 282 |
498 | 283 This lists both regular and local tags. |
497 | 284 |
438 | 285 tip:: |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
286 Show the tip revision. |
177 | 287 |
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
288 undo:: |
438 | 289 Undo the last commit or pull transaction. |
290 | |
291 update [-m -C] [revision]:: | |
498 | 292 Update the working directory to the specified revision. |
438 | 293 |
498 | 294 By default, update will refuse to run if doing so would require |
295 merging or discarding local changes. | |
296 | |
297 With the -m option, a merge will be performed. | |
298 | |
299 With the -C option, local changes will be lost. | |
497 | 300 |
438 | 301 options: |
302 -m, --merge allow merging of branches | |
303 -C, --clean overwrite locally modified files | |
304 | |
305 aliases: up checkout co | |
306 | |
307 verify:: | |
308 Verify the integrity of the current repository. | |
309 | |
310 This will perform an extensive check of the repository's | |
311 integrity, validating the hashes and checksums of each entry in | |
312 the changelog, manifest, and tracked files, as well as the | |
313 integrity of their crosslinks and indices. | |
314 | |
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
315 |
177 | 316 ENVIRONMENT VARIABLES |
317 --------------------- | |
438 | 318 |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
319 HGEDITOR:: |
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
320 This is the name of the editor to use when committing. Defaults to the |
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
321 value of EDITOR. |
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
322 |
177 | 323 HGMERGE:: |
498 | 324 An executable to use for resolving merge conflicts. The program |
438 | 325 will be executed with three arguments: local file, remote file, |
326 ancestor file. | |
327 | |
328 The default program is "hgmerge", which is a shell script provided | |
329 by Mercurial with some sensible defaults. | |
177 | 330 |
331 HGUSER:: | |
438 | 332 This is the string used for the author of a commit. |
177 | 333 |
334 EMAIL:: | |
438 | 335 If HGUSER is not set, this will be used as the author for a commit. |
177 | 336 |
337 LOGNAME:: | |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
338 If neither HGUSER nor EMAIL is set, LOGNAME will be used (with |
438 | 339 '@hostname' appended) as the author value for a commit. |
177 | 340 |
341 EDITOR:: | |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
342 This is the name of the editor used in the hgmerge script. It will be |
498 | 343 used for commit messages if HGEDITOR isn't set. Defaults to 'vi'. |
438 | 344 |
345 PYTHONPATH:: | |
346 This is used by Python to find imported modules and may need to be set | |
347 appropriately if Mercurial is not installed system-wide. | |
177 | 348 |
349 FILES | |
350 ----- | |
351 .hgignore:: | |
438 | 352 This file contains regular expressions (one per line) that describe file |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
353 names that should be ignored by hg. |
177 | 354 |
355 .hgtags:: | |
438 | 356 This file contains changeset hash values and text tag names (one of each |
177 | 357 seperated by spaces) that correspond to tagged versions of the repository |
358 contents. | |
359 | |
438 | 360 $HOME/.hgrc, .hg/hgrc:: |
361 This file contains defaults and configuration. Values in .hg/hgrc | |
362 override those in .hgrc. | |
363 | |
364 NAMED REPOSITORIES | |
365 ------------------ | |
366 | |
487 | 367 To give symbolic names to a repository, create a section in .hgrc |
368 or .hg/hgrc containing assignments of names to paths. Example: | |
438 | 369 |
487 | 370 ----------------- |
438 | 371 [paths] |
372 hg = http://selenic.com/hg | |
478
f1804f2e7f35
Update of doc/hg.1.txt
Thomas Arendsen Hein <thomas@intevation.de>
parents:
438
diff
changeset
|
373 tah = http://hg.intevation.org/mercurial-tah/ |
487 | 374 ----------------- |
375 | |
376 | |
498 | 377 LOCAL TAGS |
378 ---------- | |
379 | |
380 To create tags that are local to the repository and not distributed or | |
381 version-controlled, create an hgrc section like the following: | |
382 | |
383 ---------------- | |
384 [tags] | |
385 working = 2dcced388cab3677a8f543c3c47a0ad34ac9d435 | |
386 tested = 12e0fdbc57a0be78f0e817fd1d170a3615cd35da | |
387 ---------------- | |
388 | |
389 | |
487 | 390 HOOKS |
391 ----- | |
392 | |
393 Mercurial supports a set of 'hook', commands that get automatically | |
394 executed by various actions such as starting or finishing a commit. To | |
395 specify a hook, simply create an hgrc section like the following: | |
396 | |
397 ----------------- | |
398 [hooks] | |
399 precommit = echo "this hook gets executed immediately before a commit" | |
400 commit = hg export $NODE | mail -s "new commit $NODE" commit-list | |
401 ----------------- | |
402 | |
181
038e4d8602bd
updated for .hgpaths and http/old-http protocol name change
jake@edge2.net
parents:
177
diff
changeset
|
403 |
321 | 404 NON_TRANSPARENT PROXY SUPPORT |
438 | 405 ----------------------------- |
321 | 406 |
487 | 407 To access a Mercurial repository through a proxy, create a file |
408 $HOME/.hgrc in the following format: | |
321 | 409 |
487 | 410 -------------- |
321 | 411 [http_proxy] |
412 host=myproxy:8080 | |
413 user=<username> | |
414 passwd=<password> | |
415 no=<localhost1>,<localhost2>,<localhost3>,... | |
487 | 416 -------------- |
321 | 417 |
498 | 418 "user" and "passwd" fields are used for authenticating proxies, "no" is a |
419 comma-separated list of local host names to not proxy. | |
321 | 420 |
177 | 421 BUGS |
422 ---- | |
423 Probably lots, please post them to the mailing list (See Resources below) | |
424 when you find them. | |
425 | |
426 AUTHOR | |
427 ------ | |
428 Written by Matt Mackall <mpm@selenic.com> | |
429 | |
430 RESOURCES | |
431 --------- | |
432 http://selenic.com/mercurial[Main Web Site] | |
433 | |
434 http://selenic.com/hg[Source code repository] | |
435 | |
436 http://selenic.com/mailman/listinfo/mercurial[Mailing list] | |
437 | |
438 COPYING | |
439 ------- | |
440 Copyright (C) 2005 Matt Mackall. | |
441 Free use of this software is granted under the terms of the GNU General | |
442 Public License (GPL). |