hg.1.txt
395 lines
| 11.4 KiB
| text/plain
|
TextLexer
/ doc / hg.1.txt
|
r177 | HG(1) | ||
===== | ||||
Matt Mackall <mpm@selenic.com> | ||||
|
r478 | v0.6, 24 Jun 2005 | ||
|
r177 | |||
NAME | ||||
---- | ||||
|
r438 | hg - Mercurial source code management system | ||
|
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 | ||||
------- | ||||
|
r438 | |||
|
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 | ||||
|
r478 | revision:: | ||
|
r438 | indicates a changeset which can be specified as a changeset revision | ||
number, a tag, or a unique substring of the changeset hash value | ||||
|
r177 | |||
repository path:: | ||||
is either the pathname of a local repository of the URI of a remote | ||||
|
r181 | repository. There are two available URI protocols, http:// which is | ||
|
r478 | fast and the old-http:// protocol which is much slower but does not | ||
|
r438 | require a special server on the web host. | ||
|
r177 | |||
COMMANDS | ||||
-------- | ||||
|
r438 | |||
|
r177 | add [files ...]:: | ||
|
r438 | Add the given files to the repository. Note that this just schedules the | ||
|
r177 | files for addition at the next hg commit time. | ||
addremove:: | ||||
|
r438 | Add all new files and remove all missing files from the repository. New | ||
|
r177 | files are ignored if they match any of the patterns in .hgignore | ||
|
r438 | annotate [-r <rev> -u -n -c] [files ...]:: | ||
|
r478 | List the files with each line showing the revision id responsible | ||
for that line. | ||||
|
r177 | |||
|
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) | ||||
|
r177 | |||
|
r438 | cat <file> [revision]:: | ||
Output the given revision or tip of the specified file to stdout. | ||||
|
r177 | |||
|
r485 | clone [-U] <source> [dest]:: | ||
Create a new copy of an existing repository. | ||||
If the specified source is on the same filesystem, the repository | ||||
will be copied via hardlinks. This is the fastest and most | ||||
space-efficient mode of operation. | ||||
If the destination directory is not specified, it defaults to the | ||||
current directory. | ||||
If the destination is specified, but does not exist, it is created. | ||||
The source is added to .hg/hgrc in the new copy as the default for | ||||
future pulls. | ||||
options: | ||||
-U, --no-update do not update the new working directory | ||||
|
r438 | commit [-A -t -l <file> -t <text> -u <user> -d <datecode>] [files...]:: | ||
|
r478 | Commit all changed files in the working dir to the repository. This uses | ||
|
r177 | the EDITOR environment variable to bring up an editor to add a commit | ||
comment. | ||||
|
r438 | Options: | ||
|
r478 | |||
|
r438 | -A, --addremove run addremove during commit | ||
-t, --text <text> use <text> as commit message | ||||
-l, --logfile <file> read the commit message from the specified | ||||
file | ||||
-d, --date <datecode> use the specified date code | ||||
-u, --user <user> record commit as the specified user | ||||
aliases: ci | ||||
copy <source> <dest>:: | ||||
Mark a file as copied or renamed for the next commit. | ||||
|
r177 | diff [-r revision] [-r revision] [files ...]:: | ||
|
r478 | Generate a unified diff of the indicated files. If there are no | ||
revisions specified, the working directory file is compared to | ||||
the tip, one revision specified indicates a comparison between the | ||||
working directory file and the specified revision, and two revisions | ||||
|
r177 | compares the two versions specified. | ||
|
r438 | export [revision]:: | ||
Print the changeset header (author, changeset hash, parent, and commit | ||||
comment) and the diffs for a particular revision. | ||||
|
r177 | |||
|
r438 | forget [files]:: | ||
Undo an 'hg add' scheduled for the next commit. | ||||
|
r177 | |||
|
r438 | heads:: | ||
Show all changesets with no children. These are the "heads" of | ||||
development branches and are the usual targets for updates and merges. | ||||
|
r196 | |||
|
r177 | history:: | ||
|
r438 | Print the revision history of the repository. Use the -v switch | ||
for more detail. | ||||
identify:: | ||||
Print a short identifier of the current state of the repo. This | ||||
includes one or two parent hash identifiers, followed by | ||||
a "+" if there are uncommitted changes in the working directory, | ||||
|
r478 | followed by a list of tags for this revision. | ||
|
r438 | |||
aliases: id | ||||
import [-p <n> -b <base> -q] <patches>:: | ||||
Import the listed patches and commit them individually. | ||||
|
r177 | |||
|
r438 | options: | ||
-p, --strip <n> directory strip option for patch | ||||
-b <path> base directory to read patches from | ||||
aliases: patch | ||||
init [-u] [source]:: | ||||
Initialize a repository in the current directory. | ||||
|
r485 | NOTE: The following use is deprecated, and will be removed soon; | ||
use the "hg clone" command instead. | ||||
|
r438 | If a source is specified, pull that source into the repository. | ||
This source is added to .hg/hgrc as the default for future pulls | ||||
in this repository. | ||||
If the specified source is on the same filesystem, the repository | ||||
will be copied via hardlinks. This is the fastest and most | ||||
space-efficient mode of operation. | ||||
options: | ||||
-u, --update update the working directory to match the tip | ||||
|
r177 | |||
log <file>:: | ||||
|
r438 | Print the revision history of the specified file. | ||
|
r177 | |||
|
r438 | manifest [revision]:: | ||
Print the indicated revision of the manifest (list of version controlled | ||||
|
r478 | files). | ||
|
r438 | |||
parents:: | ||||
Print the working directory's parent revisions. | ||||
pull <repository path>:: | ||||
|
r478 | Pull any changes from the specified repository to the repository in the | ||
|
r438 | current directory. | ||
options: | ||||
-u, --update update the working directory to tip after pull | ||||
push <destination>:: | ||||
Push changes from the local repository to the specified | ||||
destination. If the destination is local, this is identical to a | ||||
a pull in that directory from the current directory. | ||||
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]:: | ||||
|
r478 | Primarily useful for importing from other SCMs. | ||
|
r177 | |||
|
r196 | recover:: | ||
|
r438 | Recover from an interrupted commit or pull. This should only be | ||
necessary when Mercurial suggests it. | ||||
|
r196 | |||
|
r177 | remove [files ...]:: | ||
|
r478 | Schedule the indicated files for removal from the repository at the next | ||
commit. | ||||
|
r438 | aliases: rm | ||
|
r177 | |||
|
r478 | root:: | ||
Print the root directory of the current repository. | ||||
|
r177 | serve [-a addr -n name -p port -t templatedir]:: | ||
|
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 | ||||
|
r177 | |||
status:: | ||||
|
r438 | Show changed files in the working directory. | ||
C = changed | ||||
A = added | ||||
R = removed | ||||
? = not tracked | ||||
tag [-t <text> -d <datecode> -u <user>] <name> [revision]:: | ||||
Add a tag <name> to the specified revision or the tip. | ||||
options: | ||||
-t, --text <text> message for tag commit log entry | ||||
-d, --date <datecode> datecode for commit | ||||
-u, --user <user> user for commit | ||||
|
r177 | |||
tags:: | ||||
|
r478 | List the repository tags. | ||
|
r438 | |||
tip:: | ||||
|
r478 | Show the tip revision. | ||
|
r177 | |||
|
r196 | undo:: | ||
|
r438 | Undo the last commit or pull transaction. | ||
update [-m -C] [revision]:: | ||||
Update or merge the working directory to a specified revision. | ||||
If there are no outstanding changes in the working directory and | ||||
there is a linear relationship between the current version and the | ||||
requested version, the result is the requested version. | ||||
Otherwise the result is a merge between the contents of the | ||||
current working directory and the requested version. Files that | ||||
changed between either parent are marked as changed for the next | ||||
commit and a commit must be performed before any further updates | ||||
are allowed. Merging will not be performed without the -m flag. | ||||
The -C switch will tell Mercurial to forcibly update to the | ||||
specified version, adding, removing, and overwriting locally | ||||
changed fils as necessary. | ||||
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. | ||||
|
r196 | |||
|
r177 | ENVIRONMENT VARIABLES | ||
--------------------- | ||||
|
r438 | |||
|
r478 | HGEDITOR:: | ||
This is the name of the editor to use when committing. Defaults to the | ||||
value of EDITOR. | ||||
|
r177 | HGMERGE:: | ||
|
r438 | An executable to use for resolving merge conflicts. The program , | ||
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. | ||||
|
r177 | |||
HGUSER:: | ||||
|
r438 | This is the string used for the author of a commit. | ||
|
r177 | |||
EMAIL:: | ||||
|
r438 | If HGUSER is not set, this will be used as the author for a commit. | ||
|
r177 | |||
LOGNAME:: | ||||
|
r478 | If neither HGUSER nor EMAIL is set, LOGNAME will be used (with | ||
|
r438 | '@hostname' appended) as the author value for a commit. | ||
|
r177 | |||
EDITOR:: | ||||
|
r478 | This is the name of the editor used in the hgmerge script. It will be | ||
used for commit messages, too, if HGEDITOR isn't set. Defaults to 'vi'. | ||||
|
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. | ||||
|
r177 | |||
FILES | ||||
----- | ||||
.hgignore:: | ||||
|
r438 | This file contains regular expressions (one per line) that describe file | ||
|
r478 | names that should be ignored by hg. | ||
|
r177 | |||
.hgtags:: | ||||
|
r438 | This file contains changeset hash values and text tag names (one of each | ||
|
r177 | seperated by spaces) that correspond to tagged versions of the repository | ||
contents. | ||||
|
r438 | $HOME/.hgrc, .hg/hgrc:: | ||
This file contains defaults and configuration. Values in .hg/hgrc | ||||
override those in .hgrc. | ||||
NAMED REPOSITORIES | ||||
------------------ | ||||
|
r487 | To give symbolic names to a repository, create a section in .hgrc | ||
or .hg/hgrc containing assignments of names to paths. Example: | ||||
|
r438 | |||
|
r487 | ----------------- | ||
|
r438 | [paths] | ||
hg = http://selenic.com/hg | ||||
|
r478 | tah = http://hg.intevation.org/mercurial-tah/ | ||
|
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 | ||||
----------------- | ||||
|
r181 | |||
|
r321 | NON_TRANSPARENT PROXY SUPPORT | ||
|
r438 | ----------------------------- | ||
|
r321 | |||
|
r487 | To access a Mercurial repository through a proxy, create a file | ||
$HOME/.hgrc in the following format: | ||||
|
r321 | |||
|
r487 | -------------- | ||
|
r321 | [http_proxy] | ||
host=myproxy:8080 | ||||
user=<username> | ||||
passwd=<password> | ||||
no=<localhost1>,<localhost2>,<localhost3>,... | ||||
|
r487 | -------------- | ||
|
r321 | |||
|
r487 | "user","passwd" fields are used for authenticating proxies, "no" is a | ||
comma-separated list of local host names for which proxy must be | ||||
bypassed. | ||||
|
r321 | |||
|
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). | ||||