author | mpm@selenic.com |
Fri, 24 Jun 2005 12:33:14 -0800 | |
changeset 458 | ff8fbf99cd64 |
parent 438 | b38deaf7873e |
child 478 | f1804f2e7f35 |
child 484 | 934279f3ca53 |
permissions | -rw-r--r-- |
177 | 1 |
HG(1) |
2 |
===== |
|
3 |
Matt Mackall <mpm@selenic.com> |
|
438 | 4 |
v0.6, 27 May 2005 |
177 | 5 |
|
6 |
NAME |
|
7 |
---- |
|
438 | 8 |
hg - Mercurial source code management system |
177 | 9 |
|
10 |
SYNOPSIS |
|
11 |
-------- |
|
12 |
'hg' [-v -d -q -y] <command> [command options] [files] |
|
13 |
||
14 |
DESCRIPTION |
|
15 |
----------- |
|
16 |
The hg(1) command provides a command line interface to the Mercurial system. |
|
17 |
||
18 |
OPTIONS |
|
19 |
------- |
|
438 | 20 |
|
177 | 21 |
--debug, -d:: |
22 |
enable debugging output |
|
23 |
||
24 |
--quiet, -q:: |
|
25 |
suppress output |
|
26 |
||
27 |
--verbose, -v:: |
|
28 |
enable additional output |
|
29 |
||
30 |
--noninteractive, -y:: |
|
31 |
do not prompt, assume 'yes' for any required answers |
|
32 |
||
33 |
COMMAND ELEMENTS |
|
34 |
---------------- |
|
35 |
||
36 |
files ...:: |
|
37 |
indicates one or more filename or relative path filenames |
|
38 |
||
39 |
path:: |
|
40 |
indicates a path on the local machine |
|
41 |
||
438 | 42 |
revision:: |
43 |
indicates a changeset which can be specified as a changeset revision |
|
44 |
number, a tag, or a unique substring of the changeset hash value |
|
177 | 45 |
|
46 |
repository path:: |
|
47 |
is either the pathname of a local repository of the URI of a remote |
|
181
038e4d8602bd
updated for .hgpaths and http/old-http protocol name change
jake@edge2.net
parents:
177
diff
changeset
|
48 |
repository. There are two available URI protocols, http:// which is |
038e4d8602bd
updated for .hgpaths and http/old-http protocol name change
jake@edge2.net
parents:
177
diff
changeset
|
49 |
fast and the old-http:// protocol which is much slower but does not |
438 | 50 |
require a special server on the web host. |
177 | 51 |
|
52 |
COMMANDS |
|
53 |
-------- |
|
438 | 54 |
|
177 | 55 |
add [files ...]:: |
438 | 56 |
Add the given files to the repository. Note that this just schedules the |
177 | 57 |
files for addition at the next hg commit time. |
58 |
||
59 |
addremove:: |
|
438 | 60 |
Add all new files and remove all missing files from the repository. New |
177 | 61 |
files are ignored if they match any of the patterns in .hgignore |
62 |
||
438 | 63 |
annotate [-r <rev> -u -n -c] [files ...]:: |
64 |
List the files with each line showing the revision id responsible |
|
65 |
for that line. |
|
177 | 66 |
|
438 | 67 |
options: |
68 |
-r, --revision <rev> annotate the specified revision |
|
69 |
-u, --user list the author |
|
70 |
-c, --changeset list the changeset |
|
71 |
-n, --number list the revision number (default) |
|
177 | 72 |
|
438 | 73 |
cat <file> [revision]:: |
74 |
Output the given revision or tip of the specified file to stdout. |
|
177 | 75 |
|
438 | 76 |
commit [-A -t -l <file> -t <text> -u <user> -d <datecode>] [files...]:: |
177 | 77 |
commit all changed files in the working dir to the repository. This uses |
78 |
the EDITOR environment variable to bring up an editor to add a commit |
|
79 |
comment. |
|
80 |
||
438 | 81 |
Options: |
82 |
||
83 |
-A, --addremove run addremove during commit |
|
84 |
-t, --text <text> use <text> as commit message |
|
85 |
-l, --logfile <file> read the commit message from the specified |
|
86 |
file |
|
87 |
-d, --date <datecode> use the specified date code |
|
88 |
-u, --user <user> record commit as the specified user |
|
89 |
||
90 |
aliases: ci |
|
91 |
||
92 |
copy <source> <dest>:: |
|
93 |
Mark a file as copied or renamed for the next commit. |
|
94 |
||
177 | 95 |
diff [-r revision] [-r revision] [files ...]:: |
438 | 96 |
Generate a unified diff of the indicated files. If there are no |
177 | 97 |
revisions specified, the working directory file is compared to |
98 |
the tip, one revision specified indicates a comparison between the |
|
438 | 99 |
working directory file and the specified revision, and two revisions |
177 | 100 |
compares the two versions specified. |
101 |
||
438 | 102 |
export [revision]:: |
103 |
Print the changeset header (author, changeset hash, parent, and commit |
|
104 |
comment) and the diffs for a particular revision. |
|
177 | 105 |
|
438 | 106 |
forget [files]:: |
107 |
Undo an 'hg add' scheduled for the next commit. |
|
177 | 108 |
|
438 | 109 |
heads:: |
110 |
Show all changesets with no children. These are the "heads" of |
|
111 |
development branches and are the usual targets for updates and merges. |
|
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
112 |
|
177 | 113 |
history:: |
438 | 114 |
Print the revision history of the repository. Use the -v switch |
115 |
for more detail. |
|
116 |
||
117 |
identify:: |
|
118 |
Print a short identifier of the current state of the repo. This |
|
119 |
includes one or two parent hash identifiers, followed by |
|
120 |
a "+" if there are uncommitted changes in the working directory, |
|
121 |
followed by a list of tags for this revision |
|
122 |
||
123 |
aliases: id |
|
124 |
||
125 |
import [-p <n> -b <base> -q] <patches>:: |
|
126 |
Import the listed patches and commit them individually. |
|
177 | 127 |
|
438 | 128 |
options: |
129 |
-p, --strip <n> directory strip option for patch |
|
130 |
-b <path> base directory to read patches from |
|
131 |
||
132 |
aliases: patch |
|
133 |
||
134 |
init [-u] [source]:: |
|
135 |
Initialize a repository in the current directory. |
|
136 |
||
137 |
If a source is specified, pull that source into the repository. |
|
138 |
This source is added to .hg/hgrc as the default for future pulls |
|
139 |
in this repository. |
|
140 |
||
141 |
If the specified source is on the same filesystem, the repository |
|
142 |
will be copied via hardlinks. This is the fastest and most |
|
143 |
space-efficient mode of operation. |
|
144 |
||
145 |
options: |
|
146 |
-u, --update update the working directory to match the tip |
|
177 | 147 |
|
148 |
log <file>:: |
|
438 | 149 |
Print the revision history of the specified file. |
177 | 150 |
|
438 | 151 |
manifest [revision]:: |
152 |
Print the indicated revision of the manifest (list of version controlled |
|
153 |
files) |
|
154 |
||
155 |
parents:: |
|
156 |
Print the working directory's parent revisions. |
|
157 |
||
158 |
pull <repository path>:: |
|
177 | 159 |
pull any changes from the specified repository to the repository in the |
438 | 160 |
current directory. |
161 |
||
162 |
options: |
|
163 |
-u, --update update the working directory to tip after pull |
|
164 |
||
165 |
push <destination>:: |
|
166 |
Push changes from the local repository to the specified |
|
167 |
destination. If the destination is local, this is identical to a |
|
168 |
a pull in that directory from the current directory. |
|
169 |
||
170 |
The other currently available push method is SSH. This requires an |
|
171 |
accessible shell account on the destination machine and a copy of |
|
172 |
hg in the remote path. Destinations are specified in the following |
|
173 |
form: |
|
174 |
||
175 |
ssh://[user@]host[:port]/path |
|
176 |
||
177 |
rawcommit [-p -d -u -F -t -l]:: |
|
178 |
Primarily useful for importing from other SCMs. |
|
177 | 179 |
|
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
180 |
recover:: |
438 | 181 |
Recover from an interrupted commit or pull. This should only be |
182 |
necessary when Mercurial suggests it. |
|
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
183 |
|
177 | 184 |
remove [files ...]:: |
185 |
schedule the indicated files for removal from the repository at the next |
|
186 |
commit |
|
438 | 187 |
|
188 |
aliases: rm |
|
177 | 189 |
|
190 |
serve [-a addr -n name -p port -t templatedir]:: |
|
438 | 191 |
Start a local HTTP repository browser and pull server. |
192 |
||
193 |
options: |
|
194 |
-a, --address <addr> address to use |
|
195 |
-p, --port <n> port to use (default: 8000) |
|
196 |
-n, --name <name> name to show in web pages (default: working dir) |
|
197 |
-t, --templatedir <path> web templates to use |
|
177 | 198 |
|
199 |
status:: |
|
438 | 200 |
Show changed files in the working directory. |
201 |
||
202 |
C = changed |
|
203 |
A = added |
|
204 |
R = removed |
|
205 |
? = not tracked |
|
206 |
||
207 |
tag [-t <text> -d <datecode> -u <user>] <name> [revision]:: |
|
208 |
Add a tag <name> to the specified revision or the tip. |
|
209 |
||
210 |
options: |
|
211 |
-t, --text <text> message for tag commit log entry |
|
212 |
-d, --date <datecode> datecode for commit |
|
213 |
-u, --user <user> user for commit |
|
177 | 214 |
|
215 |
tags:: |
|
438 | 216 |
List the current tags. |
217 |
||
218 |
tip:: |
|
219 |
Show the tip revision |
|
177 | 220 |
|
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
221 |
undo:: |
438 | 222 |
Undo the last commit or pull transaction. |
223 |
||
224 |
update [-m -C] [revision]:: |
|
225 |
Update or merge the working directory to a specified revision. |
|
226 |
||
227 |
If there are no outstanding changes in the working directory and |
|
228 |
there is a linear relationship between the current version and the |
|
229 |
requested version, the result is the requested version. |
|
230 |
||
231 |
Otherwise the result is a merge between the contents of the |
|
232 |
current working directory and the requested version. Files that |
|
233 |
changed between either parent are marked as changed for the next |
|
234 |
commit and a commit must be performed before any further updates |
|
235 |
are allowed. Merging will not be performed without the -m flag. |
|
236 |
||
237 |
The -C switch will tell Mercurial to forcibly update to the |
|
238 |
specified version, adding, removing, and overwriting locally |
|
239 |
changed fils as necessary. |
|
240 |
||
241 |
options: |
|
242 |
-m, --merge allow merging of branches |
|
243 |
-C, --clean overwrite locally modified files |
|
244 |
||
245 |
aliases: up checkout co |
|
246 |
||
247 |
verify:: |
|
248 |
Verify the integrity of the current repository. |
|
249 |
||
250 |
This will perform an extensive check of the repository's |
|
251 |
integrity, validating the hashes and checksums of each entry in |
|
252 |
the changelog, manifest, and tracked files, as well as the |
|
253 |
integrity of their crosslinks and indices. |
|
254 |
||
196
48827121af7e
add export, recover, and undo to the man page
jake@edge2.net
parents:
182
diff
changeset
|
255 |
|
177 | 256 |
ENVIRONMENT VARIABLES |
257 |
--------------------- |
|
438 | 258 |
|
177 | 259 |
HGMERGE:: |
438 | 260 |
An executable to use for resolving merge conflicts. The program , |
261 |
will be executed with three arguments: local file, remote file, |
|
262 |
ancestor file. |
|
263 |
||
264 |
The default program is "hgmerge", which is a shell script provided |
|
265 |
by Mercurial with some sensible defaults. |
|
177 | 266 |
|
267 |
HGUSER:: |
|
438 | 268 |
This is the string used for the author of a commit. |
177 | 269 |
|
270 |
EMAIL:: |
|
438 | 271 |
If HGUSER is not set, this will be used as the author for a commit. |
177 | 272 |
|
273 |
LOGNAME:: |
|
274 |
if neither HGUSER nor EMAIL is set, LOGNAME will be used (with |
|
438 | 275 |
'@hostname' appended) as the author value for a commit. |
177 | 276 |
|
277 |
EDITOR:: |
|
438 | 278 |
This is the name of the editor to use when committing. Defaults to 'vi'. |
279 |
||
280 |
PYTHONPATH:: |
|
281 |
This is used by Python to find imported modules and may need to be set |
|
282 |
appropriately if Mercurial is not installed system-wide. |
|
177 | 283 |
|
284 |
FILES |
|
285 |
----- |
|
286 |
.hgignore:: |
|
438 | 287 |
This file contains regular expressions (one per line) that describe file |
177 | 288 |
names that should be ignored by hg |
289 |
||
290 |
.hgtags:: |
|
438 | 291 |
This file contains changeset hash values and text tag names (one of each |
177 | 292 |
seperated by spaces) that correspond to tagged versions of the repository |
293 |
contents. |
|
294 |
||
438 | 295 |
$HOME/.hgrc, .hg/hgrc:: |
296 |
This file contains defaults and configuration. Values in .hg/hgrc |
|
297 |
override those in .hgrc. |
|
298 |
||
299 |
NAMED REPOSITORIES |
|
300 |
------------------ |
|
301 |
||
302 |
To give symbolic names to a repository, create a section in .hgrc |
|
303 |
or .hg/hgrc containing assignments of names to paths. |
|
304 |
||
305 |
Example: |
|
306 |
||
307 |
[paths] |
|
308 |
hg = http://selenic.com/hg |
|
181
038e4d8602bd
updated for .hgpaths and http/old-http protocol name change
jake@edge2.net
parents:
177
diff
changeset
|
309 |
|
321 | 310 |
NON_TRANSPARENT PROXY SUPPORT |
438 | 311 |
----------------------------- |
321 | 312 |
|
438 | 313 |
To access a Mercurial repository through a proxy, |
321 | 314 |
create a file $HOME/.hgrc in the following format: |
315 |
||
316 |
[http_proxy] |
|
317 |
host=myproxy:8080 |
|
318 |
user=<username> |
|
319 |
passwd=<password> |
|
320 |
no=<localhost1>,<localhost2>,<localhost3>,... |
|
321 |
||
322 |
"user","passwd" fields are used for authenticating proxies, |
|
323 |
"no" is a comma-separated list of local host names |
|
324 |
for which proxy must be bypassed. |
|
325 |
||
177 | 326 |
BUGS |
327 |
---- |
|
328 |
Probably lots, please post them to the mailing list (See Resources below) |
|
329 |
when you find them. |
|
330 |
||
331 |
AUTHOR |
|
332 |
------ |
|
333 |
Written by Matt Mackall <mpm@selenic.com> |
|
334 |
||
335 |
RESOURCES |
|
336 |
--------- |
|
337 |
http://selenic.com/mercurial[Main Web Site] |
|
338 |
||
339 |
http://selenic.com/hg[Source code repository] |
|
340 |
||
341 |
http://selenic.com/mailman/listinfo/mercurial[Mailing list] |
|
342 |
||
343 |
COPYING |
|
344 |
------- |
|
345 |
Copyright (C) 2005 Matt Mackall. |
|
346 |
Free use of this software is granted under the terms of the GNU General |
|
347 |
Public License (GPL). |