|
|
HG(1)
|
|
|
=====
|
|
|
Matt Mackall <mpm@selenic.com>
|
|
|
v0.6, 24 Jun 2005
|
|
|
|
|
|
NAME
|
|
|
----
|
|
|
hg - Mercurial source code management system
|
|
|
|
|
|
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
|
|
|
-------
|
|
|
|
|
|
--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
|
|
|
|
|
|
revision::
|
|
|
indicates a changeset which can be specified as a changeset revision
|
|
|
number, a tag, or a unique substring of the changeset hash value
|
|
|
|
|
|
repository path::
|
|
|
is either the pathname of a local repository of the URI of a remote
|
|
|
repository. There are two available URI protocols, http:// which is
|
|
|
fast and the old-http:// protocol which is much slower but does not
|
|
|
require a special server on the web host.
|
|
|
|
|
|
COMMANDS
|
|
|
--------
|
|
|
|
|
|
add [files ...]::
|
|
|
Add the given files to the repository. Note that this just schedules the
|
|
|
files for addition at the next hg commit time.
|
|
|
|
|
|
addremove::
|
|
|
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
|
|
|
|
|
|
annotate [-r <rev> -u -n -c] [files ...]::
|
|
|
List the files with each line showing the revision id responsible
|
|
|
for that line.
|
|
|
|
|
|
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)
|
|
|
|
|
|
cat <file> [revision]::
|
|
|
Output the given revision or tip of the specified file to stdout.
|
|
|
|
|
|
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
|
|
|
|
|
|
commit [-A -t -l <file> -t <text> -u <user> -d <datecode>] [files...]::
|
|
|
Commit all changed files in the working dir to the repository. This uses
|
|
|
the EDITOR environment variable to bring up an editor to add a commit
|
|
|
comment.
|
|
|
|
|
|
Options:
|
|
|
|
|
|
-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.
|
|
|
|
|
|
diff [-r revision] [-r revision] [files ...]::
|
|
|
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
|
|
|
compares the two versions specified.
|
|
|
|
|
|
export [revision]::
|
|
|
Print the changeset header (author, changeset hash, parent, and commit
|
|
|
comment) and the diffs for a particular revision.
|
|
|
|
|
|
forget [files]::
|
|
|
Undo an 'hg add' scheduled for the next commit.
|
|
|
|
|
|
heads::
|
|
|
Show all changesets with no children. These are the "heads" of
|
|
|
development branches and are the usual targets for updates and merges.
|
|
|
|
|
|
history::
|
|
|
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,
|
|
|
followed by a list of tags for this revision.
|
|
|
|
|
|
aliases: id
|
|
|
|
|
|
import [-p <n> -b <base> -q] <patches>::
|
|
|
Import the listed patches and commit them individually.
|
|
|
|
|
|
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.
|
|
|
|
|
|
NOTE: The following use is deprecated, and will be removed soon;
|
|
|
use the "hg clone" command instead.
|
|
|
|
|
|
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
|
|
|
|
|
|
log <file>::
|
|
|
Print the revision history of the specified file.
|
|
|
|
|
|
manifest [revision]::
|
|
|
Print the indicated revision of the manifest (list of version controlled
|
|
|
files).
|
|
|
|
|
|
parents::
|
|
|
Print the working directory's parent revisions.
|
|
|
|
|
|
pull <repository path>::
|
|
|
Pull any changes from the specified repository to the repository in the
|
|
|
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]::
|
|
|
Primarily useful for importing from other SCMs.
|
|
|
|
|
|
recover::
|
|
|
Recover from an interrupted commit or pull. This should only be
|
|
|
necessary when Mercurial suggests it.
|
|
|
|
|
|
remove [files ...]::
|
|
|
Schedule the indicated files for removal from the repository at the next
|
|
|
commit.
|
|
|
|
|
|
aliases: rm
|
|
|
|
|
|
root::
|
|
|
Print the root directory of the current repository.
|
|
|
|
|
|
serve [-a addr -n name -p port -t templatedir]::
|
|
|
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
|
|
|
|
|
|
status::
|
|
|
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
|
|
|
|
|
|
tags::
|
|
|
List the repository tags.
|
|
|
|
|
|
tip::
|
|
|
Show the tip revision.
|
|
|
|
|
|
undo::
|
|
|
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.
|
|
|
|
|
|
|
|
|
ENVIRONMENT VARIABLES
|
|
|
---------------------
|
|
|
|
|
|
HGEDITOR::
|
|
|
This is the name of the editor to use when committing. Defaults to the
|
|
|
value of EDITOR.
|
|
|
|
|
|
HGMERGE::
|
|
|
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.
|
|
|
|
|
|
HGUSER::
|
|
|
This is the string used for the author of a commit.
|
|
|
|
|
|
EMAIL::
|
|
|
If HGUSER is not set, this will be used as the author for a commit.
|
|
|
|
|
|
LOGNAME::
|
|
|
If neither HGUSER nor EMAIL is set, LOGNAME will be used (with
|
|
|
'@hostname' appended) as the author value for a commit.
|
|
|
|
|
|
EDITOR::
|
|
|
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'.
|
|
|
|
|
|
PYTHONPATH::
|
|
|
This is used by Python to find imported modules and may need to be set
|
|
|
appropriately if Mercurial is not installed system-wide.
|
|
|
|
|
|
FILES
|
|
|
-----
|
|
|
.hgignore::
|
|
|
This file contains regular expressions (one per line) that describe file
|
|
|
names that should be ignored by hg.
|
|
|
|
|
|
.hgtags::
|
|
|
This file contains changeset hash values and text tag names (one of each
|
|
|
seperated by spaces) that correspond to tagged versions of the repository
|
|
|
contents.
|
|
|
|
|
|
$HOME/.hgrc, .hg/hgrc::
|
|
|
This file contains defaults and configuration. Values in .hg/hgrc
|
|
|
override those in .hgrc.
|
|
|
|
|
|
NAMED REPOSITORIES
|
|
|
------------------
|
|
|
|
|
|
To give symbolic names to a repository, create a section in .hgrc
|
|
|
or .hg/hgrc containing assignments of names to paths. Example:
|
|
|
|
|
|
-----------------
|
|
|
[paths]
|
|
|
hg = http://selenic.com/hg
|
|
|
tah = http://hg.intevation.org/mercurial-tah/
|
|
|
-----------------
|
|
|
|
|
|
|
|
|
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
|
|
|
-----------------
|
|
|
|
|
|
|
|
|
NON_TRANSPARENT PROXY SUPPORT
|
|
|
-----------------------------
|
|
|
|
|
|
To access a Mercurial repository through a proxy, create a file
|
|
|
$HOME/.hgrc in the following format:
|
|
|
|
|
|
--------------
|
|
|
[http_proxy]
|
|
|
host=myproxy:8080
|
|
|
user=<username>
|
|
|
passwd=<password>
|
|
|
no=<localhost1>,<localhost2>,<localhost3>,...
|
|
|
--------------
|
|
|
|
|
|
"user","passwd" fields are used for authenticating proxies, "no" is a
|
|
|
comma-separated list of local host names for which proxy must be
|
|
|
bypassed.
|
|
|
|
|
|
|
|
|
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).
|
|
|
|