hg.1.txt
449 lines
| 13.1 KiB
| text/plain
|
TextLexer
/ doc / hg.1.txt
jake@edge2.net
|
r177 | HG(1) | ||
===== | ||||
Matt Mackall <mpm@selenic.com> | ||||
NAME | ||||
---- | ||||
mpm@selenic.com
|
r438 | hg - Mercurial source code management system | ||
jake@edge2.net
|
r177 | |||
SYNOPSIS | ||||
-------- | ||||
'hg' [-v -d -q -y] <command> [command options] [files] | ||||
DESCRIPTION | ||||
----------- | ||||
The hg(1) command provides a command line interface to the Mercurial system. | ||||
OPTIONS | ||||
------- | ||||
mpm@selenic.com
|
r438 | |||
jake@edge2.net
|
r177 | --debug, -d:: | ||
enable debugging output | ||||
--quiet, -q:: | ||||
suppress output | ||||
--verbose, -v:: | ||||
enable additional output | ||||
--noninteractive, -y:: | ||||
do not prompt, assume 'yes' for any required answers | ||||
COMMAND ELEMENTS | ||||
---------------- | ||||
files ...:: | ||||
indicates one or more filename or relative path filenames | ||||
path:: | ||||
indicates a path on the local machine | ||||
Thomas Arendsen Hein
|
r478 | revision:: | ||
mpm@selenic.com
|
r438 | indicates a changeset which can be specified as a changeset revision | ||
number, a tag, or a unique substring of the changeset hash value | ||||
jake@edge2.net
|
r177 | |||
repository path:: | ||||
mpm@selenic.com
|
r498 | either the pathname of a local repository or the URI of a remote | ||
jake@edge2.net
|
r181 | repository. There are two available URI protocols, http:// which is | ||
Thomas Arendsen Hein
|
r478 | fast and the old-http:// protocol which is much slower but does not | ||
mpm@selenic.com
|
r438 | require a special server on the web host. | ||
jake@edge2.net
|
r177 | |||
COMMANDS | ||||
-------- | ||||
mpm@selenic.com
|
r438 | |||
jake@edge2.net
|
r177 | add [files ...]:: | ||
mpm@selenic.com
|
r497 | Schedule files to be version controlled and added to the repository. | ||
mpm@selenic.com
|
r498 | The files will be added to the repository at the next commit. | ||
jake@edge2.net
|
r177 | |||
addremove:: | ||||
mpm@selenic.com
|
r497 | Add all new files and remove all missing files from the repository. | ||
New files are ignored if they match any of the patterns in .hgignore. As | ||||
mpm@selenic.com
|
r498 | with add, these changes take effect at the next commit. | ||
jake@edge2.net
|
r177 | |||
mpm@selenic.com
|
r438 | annotate [-r <rev> -u -n -c] [files ...]:: | ||
mpm@selenic.com
|
r497 | List changes in files, showing the revision id responsible for each line | ||
This command is useful to discover who did a change or when a change took | ||||
place. | ||||
mpm@selenic.com
|
r438 | options: | ||
-r, --revision <rev> annotate the specified revision | ||||
-u, --user list the author | ||||
-c, --changeset list the changeset | ||||
-n, --number list the revision number (default) | ||||
jake@edge2.net
|
r177 | |||
mpm@selenic.com
|
r438 | cat <file> [revision]:: | ||
mpm@selenic.com
|
r497 | Output to stdout the given revision for the specified file. | ||
mpm@selenic.com
|
r498 | If no revision is given then the tip is used. | ||
jake@edge2.net
|
r177 | |||
mpm@selenic.com
|
r485 | clone [-U] <source> [dest]:: | ||
mpm@selenic.com
|
r497 | Create a copy of an existing repository in a new directory. | ||
mpm@selenic.com
|
r498 | If the destination directory is specified but doesn't exist, it is | ||
mpm@selenic.com
|
r497 | created. If no destination directory is specified, it defaults to the | ||
current directory. | ||||
mpm@selenic.com
|
r498 | The source is added to the new repository's .hg/hgrc file to be used in | ||
mpm@selenic.com
|
r497 | future pulls. | ||
mpm@selenic.com
|
r498 | For efficiency, hardlinks are used for cloning whenever the | ||
source and destination are on the same filesystem. | ||||
mpm@selenic.com
|
r497 | |||
options: | ||||
-U, --no-update do not update the new working directory | ||||
commit [-A -t -l <file> -t <text> -u <user> -d <datecode>] [files...]:: | ||||
mpm@selenic.com
|
r498 | Commit changes to the given files into the repository. | ||
mpm@selenic.com
|
r497 | |||
mpm@selenic.com
|
r498 | If a list of files is omitted, all changes reported by "hg status" | ||
will be commited. | ||||
mpm@selenic.com
|
r497 | |||
mpm@selenic.com
|
r498 | The HGEDITOR or EDITOR environment variables are used to start an | ||
editor to add a commit comment. | ||||
mpm@selenic.com
|
r497 | |||
Options: | ||||
-A, --addremove run addremove during commit | ||||
-t, --text <text> use <text> as commit message | ||||
-l, --logfile <file> show the commit message for the given file | ||||
-d, --date <datecode> record datecode as commit date | ||||
-u, --user <user> record user as commiter | ||||
aliases: ci | ||||
copy <source> <dest>:: | ||||
Mark <dest> file as a copy or rename of a <source> one | ||||
This command takes effect for the next commit. | ||||
diff [-r revision] [-r revision] [files ...]:: | ||||
Show differences between revisions for the specified files. | ||||
Differences between files are shown using the unified diff format. | ||||
mpm@selenic.com
|
r498 | When two revision arguments are given, then changes are shown | ||
between those revisions. If only one revision is specified then | ||||
that revision is compared to the working directory, and, when no | ||||
revisions are specified, the working directory files are compared | ||||
to its parent. | ||||
mpm@selenic.com
|
r497 | |||
export [revision]:: | ||||
Print the changeset header and diffs for a particular revision. | ||||
The information shown in the changeset header is: author, changeset hash, | ||||
parent and commit comment. | ||||
forget [files]:: | ||||
Undo an 'hg add' scheduled for the next commit. | ||||
heads:: | ||||
Show all repository head changesets. | ||||
mpm@selenic.com
|
r498 | Repository "heads" are changesets that don't have children | ||
changesets. They are where development generally takes place and | ||||
are the usual targets for update and merge operations. | ||||
mpm@selenic.com
|
r497 | |||
history:: | ||||
Print a log of the revision history of the repository. | ||||
mpm@selenic.com
|
r498 | By default this command outputs: changeset id and hash, tags, | ||
parents, user, date and time, and a summary for each commit. The | ||||
-v switch adds some more detail, such as changed files, manifest | ||||
mpm@selenic.com
|
r497 | hashes or message signatures. | ||
To display the history of a given file, see the log command. | ||||
identify:: | ||||
Print a short summary of the current state of the repo. | ||||
This summary identifies the repository state using one or two parent | ||||
hash identifiers, followed by a "+" if there are uncommitted changes | ||||
in the working directory, followed by a list of tags for this revision. | ||||
aliases: id | ||||
import [-p <n> -b <base> -q] <patches>:: | ||||
Import a list of patches and commit them individually. | ||||
options: | ||||
-p, --strip <n> directory strip option for patch. This has the same | ||||
meaning as the correnponding patch option | ||||
-b <path> base directory to read patches from | ||||
aliases: patch | ||||
mpm@selenic.com
|
r496 | init:: | ||
Initialize a new repository in the current directory. | ||||
jake@edge2.net
|
r177 | |||
log <file>:: | ||||
mpm@selenic.com
|
r438 | Print the revision history of the specified file. | ||
jake@edge2.net
|
r177 | |||
mpm@selenic.com
|
r497 | To display the revision history for the whole repository, use the history | ||
command. | ||||
mpm@selenic.com
|
r438 | manifest [revision]:: | ||
mpm@selenic.com
|
r497 | Print a list of version controlled files for the given revision. | ||
The manifest is the list of files being version controlled. If no revision | ||||
is given then the tip is used. | ||||
mpm@selenic.com
|
r438 | |||
parents:: | ||||
Print the working directory's parent revisions. | ||||
pull <repository path>:: | ||||
mpm@selenic.com
|
r498 | Pull changes from a remote repository to a local one. | ||
mpm@selenic.com
|
r497 | |||
mpm@selenic.com
|
r498 | This finds all changes from the repository at the specified path | ||
or URL and adds them to the local repository. By default, this | ||||
does not update the copy of the project in the working directory. | ||||
mpm@selenic.com
|
r438 | |||
options: | ||||
-u, --update update the working directory to tip after pull | ||||
push <destination>:: | ||||
mpm@selenic.com
|
r497 | Push changes from the local repository to the given destination. | ||
mpm@selenic.com
|
r498 | This is the symmetrical operation for pull. It helps to move | ||
changes from the current repository to a different one. If the | ||||
destination is local this is identical to a pull in that directory | ||||
from the current one. | ||||
mpm@selenic.com
|
r438 | |||
The other currently available push method is SSH. This requires an | ||||
accessible shell account on the destination machine and a copy of | ||||
hg in the remote path. Destinations are specified in the following | ||||
form: | ||||
ssh://[user@]host[:port]/path | ||||
rawcommit [-p -d -u -F -t -l]:: | ||||
mpm@selenic.com
|
r497 | Lowlevel commit, for use in helper scripts. | ||
This command is not intended to be used by normal users, as it is | ||||
primarily useful for importing from other SCMs. | ||||
jake@edge2.net
|
r177 | |||
jake@edge2.net
|
r196 | recover:: | ||
mpm@selenic.com
|
r497 | Recover from an interrupted commit or pull. | ||
This command tries to fix the repository status after an interrupted | ||||
operation. It should only be necessary when Mercurial suggests it. | ||||
jake@edge2.net
|
r196 | |||
jake@edge2.net
|
r177 | remove [files ...]:: | ||
mpm@selenic.com
|
r497 | Schedule the indicated files for removal from the repository. | ||
mpm@selenic.com
|
r498 | This command shedules the files to be removed at the next commit. | ||
This only removes files from the current branch, not from the | ||||
entire project history. | ||||
Thomas Arendsen Hein
|
r478 | |||
mpm@selenic.com
|
r438 | aliases: rm | ||
jake@edge2.net
|
r177 | |||
Thomas Arendsen Hein
|
r478 | root:: | ||
Print the root directory of the current repository. | ||||
jake@edge2.net
|
r177 | serve [-a addr -n name -p port -t templatedir]:: | ||
mpm@selenic.com
|
r438 | Start a local HTTP repository browser and pull server. | ||
options: | ||||
-a, --address <addr> address to use | ||||
-p, --port <n> port to use (default: 8000) | ||||
-n, --name <name> name to show in web pages (default: working dir) | ||||
-t, --templatedir <path> web templates to use | ||||
jake@edge2.net
|
r177 | |||
status:: | ||||
mpm@selenic.com
|
r438 | Show changed files in the working directory. | ||
mpm@selenic.com
|
r497 | The codes used to show the status of files are: | ||
mpm@selenic.com
|
r438 | C = changed | ||
A = added | ||||
R = removed | ||||
? = not tracked | ||||
tag [-t <text> -d <datecode> -u <user>] <name> [revision]:: | ||||
mpm@selenic.com
|
r497 | Name a particular revision using <name>. | ||
Tags are used to name particular revisions of the repository and are | ||||
very useful to compare different revision, to go back to significant | ||||
mpm@selenic.com
|
r498 | earlier versions or to mark branch points as releases, etc. | ||
mpm@selenic.com
|
r497 | |||
mpm@selenic.com
|
r498 | If no revision is given, the tip is used. | ||
mpm@selenic.com
|
r438 | |||
mpm@selenic.com
|
r498 | To facilitate version control, distribution, and merging of tags, | ||
they are stored as a file named ".hgtags" which is managed | ||||
similarly to other project files and can be hand-edited if | ||||
necessary. | ||||
mpm@selenic.com
|
r438 | options: | ||
-t, --text <text> message for tag commit log entry | ||||
-d, --date <datecode> datecode for commit | ||||
-u, --user <user> user for commit | ||||
jake@edge2.net
|
r177 | |||
mpm@selenic.com
|
r498 | Note: Mercurial also has support for "local tags" that are not | ||
version-controlled or distributed which are stored in the .hg/hgrc | ||||
file. | ||||
jake@edge2.net
|
r177 | tags:: | ||
Thomas Arendsen Hein
|
r478 | List the repository tags. | ||
mpm@selenic.com
|
r438 | |||
mpm@selenic.com
|
r498 | This lists both regular and local tags. | ||
mpm@selenic.com
|
r497 | |||
mpm@selenic.com
|
r438 | tip:: | ||
Thomas Arendsen Hein
|
r478 | Show the tip revision. | ||
jake@edge2.net
|
r177 | |||
jake@edge2.net
|
r196 | undo:: | ||
mpm@selenic.com
|
r438 | Undo the last commit or pull transaction. | ||
update [-m -C] [revision]:: | ||||
mpm@selenic.com
|
r498 | Update the working directory to the specified revision. | ||
mpm@selenic.com
|
r438 | |||
mpm@selenic.com
|
r498 | By default, update will refuse to run if doing so would require | ||
merging or discarding local changes. | ||||
With the -m option, a merge will be performed. | ||||
With the -C option, local changes will be lost. | ||||
mpm@selenic.com
|
r497 | |||
mpm@selenic.com
|
r438 | options: | ||
-m, --merge allow merging of branches | ||||
-C, --clean overwrite locally modified files | ||||
aliases: up checkout co | ||||
verify:: | ||||
Verify the integrity of the current repository. | ||||
This will perform an extensive check of the repository's | ||||
integrity, validating the hashes and checksums of each entry in | ||||
the changelog, manifest, and tracked files, as well as the | ||||
integrity of their crosslinks and indices. | ||||
jake@edge2.net
|
r196 | |||
jake@edge2.net
|
r177 | ENVIRONMENT VARIABLES | ||
--------------------- | ||||
mpm@selenic.com
|
r438 | |||
Thomas Arendsen Hein
|
r478 | HGEDITOR:: | ||
This is the name of the editor to use when committing. Defaults to the | ||||
value of EDITOR. | ||||
jake@edge2.net
|
r177 | HGMERGE:: | ||
mpm@selenic.com
|
r498 | An executable to use for resolving merge conflicts. The program | ||
mpm@selenic.com
|
r438 | will be executed with three arguments: local file, remote file, | ||
ancestor file. | ||||
The default program is "hgmerge", which is a shell script provided | ||||
by Mercurial with some sensible defaults. | ||||
jake@edge2.net
|
r177 | |||
HGUSER:: | ||||
mpm@selenic.com
|
r438 | This is the string used for the author of a commit. | ||
jake@edge2.net
|
r177 | |||
EMAIL:: | ||||
mpm@selenic.com
|
r438 | If HGUSER is not set, this will be used as the author for a commit. | ||
jake@edge2.net
|
r177 | |||
LOGNAME:: | ||||
Thomas Arendsen Hein
|
r478 | If neither HGUSER nor EMAIL is set, LOGNAME will be used (with | ||
mpm@selenic.com
|
r438 | '@hostname' appended) as the author value for a commit. | ||
jake@edge2.net
|
r177 | |||
EDITOR:: | ||||
Thomas Arendsen Hein
|
r478 | This is the name of the editor used in the hgmerge script. It will be | ||
mpm@selenic.com
|
r498 | used for commit messages if HGEDITOR isn't set. Defaults to 'vi'. | ||
mpm@selenic.com
|
r438 | |||
PYTHONPATH:: | ||||
This is used by Python to find imported modules and may need to be set | ||||
appropriately if Mercurial is not installed system-wide. | ||||
jake@edge2.net
|
r177 | |||
FILES | ||||
----- | ||||
.hgignore:: | ||||
mpm@selenic.com
|
r438 | This file contains regular expressions (one per line) that describe file | ||
Thomas Arendsen Hein
|
r478 | names that should be ignored by hg. | ||
jake@edge2.net
|
r177 | |||
.hgtags:: | ||||
mpm@selenic.com
|
r438 | This file contains changeset hash values and text tag names (one of each | ||
jake@edge2.net
|
r177 | seperated by spaces) that correspond to tagged versions of the repository | ||
contents. | ||||
mpm@selenic.com
|
r438 | $HOME/.hgrc, .hg/hgrc:: | ||
This file contains defaults and configuration. Values in .hg/hgrc | ||||
override those in .hgrc. | ||||
NAMED REPOSITORIES | ||||
------------------ | ||||
mpm@selenic.com
|
r487 | To give symbolic names to a repository, create a section in .hgrc | ||
or .hg/hgrc containing assignments of names to paths. Example: | ||||
mpm@selenic.com
|
r438 | |||
mpm@selenic.com
|
r487 | ----------------- | ||
mpm@selenic.com
|
r438 | [paths] | ||
hg = http://selenic.com/hg | ||||
Thomas Arendsen Hein
|
r478 | tah = http://hg.intevation.org/mercurial-tah/ | ||
mpm@selenic.com
|
r487 | ----------------- | ||
mpm@selenic.com
|
r498 | LOCAL TAGS | ||
---------- | ||||
To create tags that are local to the repository and not distributed or | ||||
version-controlled, create an hgrc section like the following: | ||||
---------------- | ||||
[tags] | ||||
working = 2dcced388cab3677a8f543c3c47a0ad34ac9d435 | ||||
tested = 12e0fdbc57a0be78f0e817fd1d170a3615cd35da | ||||
---------------- | ||||
mpm@selenic.com
|
r487 | HOOKS | ||
----- | ||||
Mercurial supports a set of 'hook', commands that get automatically | ||||
executed by various actions such as starting or finishing a commit. To | ||||
specify a hook, simply create an hgrc section like the following: | ||||
----------------- | ||||
[hooks] | ||||
precommit = echo "this hook gets executed immediately before a commit" | ||||
commit = hg export $NODE | mail -s "new commit $NODE" commit-list | ||||
----------------- | ||||
jake@edge2.net
|
r181 | |||
mpm@selenic.com
|
r321 | NON_TRANSPARENT PROXY SUPPORT | ||
mpm@selenic.com
|
r438 | ----------------------------- | ||
mpm@selenic.com
|
r321 | |||
mpm@selenic.com
|
r487 | To access a Mercurial repository through a proxy, create a file | ||
$HOME/.hgrc in the following format: | ||||
mpm@selenic.com
|
r321 | |||
mpm@selenic.com
|
r487 | -------------- | ||
mpm@selenic.com
|
r321 | [http_proxy] | ||
host=myproxy:8080 | ||||
user=<username> | ||||
passwd=<password> | ||||
no=<localhost1>,<localhost2>,<localhost3>,... | ||||
mpm@selenic.com
|
r487 | -------------- | ||
mpm@selenic.com
|
r321 | |||
mpm@selenic.com
|
r498 | "user" and "passwd" fields are used for authenticating proxies, "no" is a | ||
comma-separated list of local host names to not proxy. | ||||
mpm@selenic.com
|
r321 | |||
jake@edge2.net
|
r177 | BUGS | ||
---- | ||||
Probably lots, please post them to the mailing list (See Resources below) | ||||
when you find them. | ||||
AUTHOR | ||||
------ | ||||
Written by Matt Mackall <mpm@selenic.com> | ||||
RESOURCES | ||||
--------- | ||||
http://selenic.com/mercurial[Main Web Site] | ||||
http://selenic.com/hg[Source code repository] | ||||
http://selenic.com/mailman/listinfo/mercurial[Mailing list] | ||||
COPYING | ||||
------- | ||||
Copyright (C) 2005 Matt Mackall. | ||||
Free use of this software is granted under the terms of the GNU General | ||||
Public License (GPL). | ||||