|
|
HG(1)
|
|
|
=====
|
|
|
Matt Mackall <mpm@selenic.com>
|
|
|
|
|
|
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
|
|
|
-------
|
|
|
|
|
|
-R, --repository::
|
|
|
repository root directory
|
|
|
|
|
|
--cwd::
|
|
|
change working directory
|
|
|
|
|
|
-y, --noninteractive::
|
|
|
do not prompt, assume 'yes' for any required answers
|
|
|
|
|
|
-q, --quiet::
|
|
|
suppress output
|
|
|
|
|
|
-v, --verbose::
|
|
|
enable additional output
|
|
|
|
|
|
--debug::
|
|
|
enable debugging output
|
|
|
|
|
|
--traceback::
|
|
|
print traceback on exception
|
|
|
|
|
|
--time::
|
|
|
time how long the command takes
|
|
|
|
|
|
--profile::
|
|
|
print command execution profile
|
|
|
|
|
|
--version::
|
|
|
output version information and exit
|
|
|
|
|
|
-h, --help::
|
|
|
display help and exit
|
|
|
|
|
|
COMMAND ELEMENTS
|
|
|
----------------
|
|
|
|
|
|
files ...::
|
|
|
indicates one or more filename or relative path filenames; see
|
|
|
"FILE NAME PATTERNS" for information on pattern matching
|
|
|
|
|
|
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::
|
|
|
either the pathname of a local repository or 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 [options] [files ...]::
|
|
|
Schedule files to be version controlled and added to the repository.
|
|
|
|
|
|
The files will be added to the repository at the next commit.
|
|
|
|
|
|
If no names are given, add all files in the current directory and
|
|
|
its subdirectories.
|
|
|
|
|
|
addremove [options] [files ...]::
|
|
|
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
|
|
|
with add, these changes take effect at the next commit.
|
|
|
|
|
|
annotate [-r <rev> -u -n -c -d] [files ...]::
|
|
|
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.
|
|
|
|
|
|
Without the -a option, annotate will avoid processing files it
|
|
|
detects as binary. With -a, annotate will generate an annotation
|
|
|
anyway, probably with undesirable results.
|
|
|
|
|
|
options:
|
|
|
-a, --text treat all files as text
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
-r, --revision <rev> annotate the specified revision
|
|
|
-u, --user list the author
|
|
|
-d, --date list the commit date
|
|
|
-c, --changeset list the changeset
|
|
|
-n, --number list the revision number (default)
|
|
|
|
|
|
bundle <file> <other>::
|
|
|
(EXPERIMENTAL)
|
|
|
|
|
|
Generate a compressed changegroup file collecting all changesets
|
|
|
not found in the other repository.
|
|
|
|
|
|
This file can then be transferred using conventional means and
|
|
|
applied to another repository with the unbundle command. This is
|
|
|
useful when native push and pull are not available or when
|
|
|
exporting an entire repository is undesirable. The standard file
|
|
|
extension is ".hg".
|
|
|
|
|
|
Unlike import/export, this exactly preserves all changeset
|
|
|
contents including permissions, rename data, and revision history.
|
|
|
|
|
|
cat [options] <file ...>::
|
|
|
Print the specified files as they were at the given revision.
|
|
|
If no revision is given then the tip is used.
|
|
|
|
|
|
Output may be to a file, in which case the name of the file is
|
|
|
given using a format string. The formatting rules are the same as
|
|
|
for the export command, with the following additions:
|
|
|
|
|
|
%s basename of file being printed
|
|
|
%d dirname of file being printed, or '.' if in repo root
|
|
|
%p root-relative path name of file being printed
|
|
|
|
|
|
options:
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
-o, --output <filespec> print output to file with formatted name
|
|
|
-r, --rev <rev> print the given revision
|
|
|
|
|
|
clone [options] <source> [dest]::
|
|
|
Create a copy of an existing repository in a new directory.
|
|
|
|
|
|
If no destination directory name is specified, it defaults to the
|
|
|
basename of the source.
|
|
|
|
|
|
The location of the source is added to the new repository's
|
|
|
.hg/hgrc file, as the default to be used for future pulls.
|
|
|
|
|
|
For efficiency, hardlinks are used for cloning whenever the source
|
|
|
and destination are on the same filesystem. Some filesystems,
|
|
|
such as AFS, implement hardlinking incorrectly, but do not report
|
|
|
errors. In these cases, use the --pull option to avoid
|
|
|
hardlinking.
|
|
|
|
|
|
See pull for valid source format details.
|
|
|
|
|
|
options:
|
|
|
-U, --noupdate do not update the new working directory
|
|
|
--pull use pull protocol to copy metadata
|
|
|
-e, --ssh specify ssh command to use
|
|
|
--remotecmd specify hg command to run on the remote side
|
|
|
|
|
|
commit [options] [files...]::
|
|
|
Commit changes to the given files into the repository.
|
|
|
|
|
|
If a list of files is omitted, all changes reported by "hg status"
|
|
|
from the root of the repository will be commited.
|
|
|
|
|
|
The HGEDITOR or EDITOR environment variables are used to start an
|
|
|
editor to add a commit comment.
|
|
|
|
|
|
Options:
|
|
|
|
|
|
-A, --addremove run addremove during commit
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
-m, --message <text> use <text> as commit message
|
|
|
-l, --logfile <file> read the commit message from <file>
|
|
|
-d, --date <datecode> record datecode as commit date
|
|
|
-u, --user <user> record user as commiter
|
|
|
|
|
|
aliases: ci
|
|
|
|
|
|
copy <source ...> <dest>::
|
|
|
Mark dest as having copies of source files. If dest is a
|
|
|
directory, copies are put in that directory. If dest is a file,
|
|
|
there can only be one source.
|
|
|
|
|
|
By default, this command copies the contents of files as they
|
|
|
stand in the working directory. If invoked with --after, the
|
|
|
operation is recorded, but no copying is performed.
|
|
|
|
|
|
This command takes effect in the next commit.
|
|
|
|
|
|
NOTE: This command should be treated as experimental. While it
|
|
|
should properly record copied files, this information is not yet
|
|
|
fully used by merge, nor fully reported by log.
|
|
|
|
|
|
Options:
|
|
|
-A, --after record a copy that has already occurred
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
-f, --force forcibly copy over an existing managed file
|
|
|
|
|
|
aliases: cp
|
|
|
|
|
|
diff [-a] [-r revision] [-r revision] [files ...]::
|
|
|
Show differences between revisions for the specified files.
|
|
|
|
|
|
Differences between files are shown using the unified diff format.
|
|
|
|
|
|
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.
|
|
|
|
|
|
Without the -a option, diff will avoid generating diffs of files
|
|
|
it detects as binary. With -a, diff will generate a diff anyway,
|
|
|
probably with undesirable results.
|
|
|
|
|
|
options:
|
|
|
-a, --text treat all files as text
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
|
|
|
export [-o filespec] [revision] ...::
|
|
|
Print the changeset header and diffs for one or more revisions.
|
|
|
|
|
|
The information shown in the changeset header is: author,
|
|
|
changeset hash, parent and commit comment.
|
|
|
|
|
|
Output may be to a file, in which case the name of the file is
|
|
|
given using a format string. The formatting rules are as follows:
|
|
|
|
|
|
%% literal "%" character
|
|
|
%H changeset hash (40 bytes of hexadecimal)
|
|
|
%N number of patches being generated
|
|
|
%R changeset revision number
|
|
|
%b basename of the exporting repository
|
|
|
%h short-form changeset hash (12 bytes of hexadecimal)
|
|
|
%n zero-padded sequence number, starting at 1
|
|
|
%r zero-padded changeset revision number
|
|
|
|
|
|
Without the -a option, export will avoid generating diffs of files
|
|
|
it detects as binary. With -a, export will generate a diff anyway,
|
|
|
probably with undesirable results.
|
|
|
|
|
|
options:
|
|
|
-a, --text treat all files as text
|
|
|
-o, --output <filespec> print output to file with formatted name
|
|
|
|
|
|
forget [options] [files]::
|
|
|
Undo an 'hg add' scheduled for the next commit.
|
|
|
|
|
|
options:
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
|
|
|
grep [options] pattern [files]::
|
|
|
Search revisions of files for a regular expression.
|
|
|
|
|
|
This command behaves differently than Unix grep. It only accepts
|
|
|
Python/Perl regexps. It searches repository history, not the
|
|
|
working directory. It always prints the revision number in which
|
|
|
a match appears.
|
|
|
|
|
|
By default, grep only prints output for the first revision of a
|
|
|
file in which it finds a match. To get it to print every revision
|
|
|
that contains a change in match status ("-" for a match that
|
|
|
becomes a non-match, or "+" for a non-match that becomes a match),
|
|
|
use the --all flag.
|
|
|
|
|
|
options:
|
|
|
-0, --print0 end fields with NUL
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
--all print all revisions that match
|
|
|
-i, --ignore-case ignore case when matching
|
|
|
-l, --files-with-matches print only filenames and revs that match
|
|
|
-n, --line-number print matching line numbers
|
|
|
-r <rev>, --rev <rev> search in given revision range
|
|
|
-u, --user print user who committed change
|
|
|
|
|
|
heads::
|
|
|
Show all repository head changesets.
|
|
|
|
|
|
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.
|
|
|
|
|
|
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> -f] <patches>::
|
|
|
Import a list of patches and commit them individually.
|
|
|
|
|
|
If there are outstanding changes in the working directory, import
|
|
|
will abort unless given the -f flag.
|
|
|
|
|
|
If a patch looks like a mail message (its first line starts with
|
|
|
"From " or looks like an RFC822 header), it will not be applied
|
|
|
unless the -f option is used. The importer neither parses nor
|
|
|
discards mail headers, so use -f only to override the "mailness"
|
|
|
safety check, not to import a real mail message.
|
|
|
|
|
|
options:
|
|
|
-p, --strip <n> directory strip option for patch. This has the same
|
|
|
meaning as the corresponding patch option
|
|
|
-b <path> base directory to read patches from
|
|
|
-f, --force skip check for outstanding uncommitted changes
|
|
|
|
|
|
aliases: patch
|
|
|
|
|
|
incoming [-p] [source]::
|
|
|
Show new changesets found in the specified repo or the default
|
|
|
pull repo. These are the changesets that would be pulled if a pull
|
|
|
was requested.
|
|
|
|
|
|
Currently only local repositories are supported.
|
|
|
|
|
|
options:
|
|
|
-p, --patch show patch
|
|
|
|
|
|
aliases: in
|
|
|
|
|
|
init [dest]::
|
|
|
Initialize a new repository in the given directory. If the given
|
|
|
directory does not exist, it is created.
|
|
|
|
|
|
If no directory is given, the current directory is used.
|
|
|
|
|
|
locate [options] [files]::
|
|
|
Print all files under Mercurial control whose names match the
|
|
|
given patterns.
|
|
|
|
|
|
This command searches the current directory and its
|
|
|
subdirectories. To search an entire repository, move to the root
|
|
|
of the repository.
|
|
|
|
|
|
If no patterns are given to match, this command prints all file
|
|
|
names.
|
|
|
|
|
|
If you want to feed the output of this command into the "xargs"
|
|
|
command, use the "-0" option to both this command and "xargs".
|
|
|
This will avoid the problem of "xargs" treating single filenames
|
|
|
that contain white space as multiple filenames.
|
|
|
|
|
|
options:
|
|
|
|
|
|
-0, --print0 end filenames with NUL, for use with xargs
|
|
|
-f, --fullpath print complete paths from the filesystem root
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-r, --rev <rev> search the repository as it stood at rev
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
|
|
|
log [-r revision ...] [-p] [files]::
|
|
|
Print the revision history of the specified files or the entire project.
|
|
|
|
|
|
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
|
|
|
hashes or message signatures.
|
|
|
|
|
|
options:
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
-r, --rev <A> show the specified revision or range
|
|
|
-p, --patch show patch
|
|
|
|
|
|
aliases: history
|
|
|
|
|
|
manifest [revision]::
|
|
|
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.
|
|
|
|
|
|
outgoing [-p] [dest]::
|
|
|
Show changesets not found in the specified destination repo or the
|
|
|
default push repo. These are the changesets that would be pushed
|
|
|
if a push was requested.
|
|
|
|
|
|
See pull for valid source format details.
|
|
|
|
|
|
options:
|
|
|
-p, --patch show patch
|
|
|
|
|
|
aliases: out
|
|
|
|
|
|
parents::
|
|
|
Print the working directory's parent revisions.
|
|
|
|
|
|
paths [NAME]::
|
|
|
Show definition of symbolic path name NAME. If no name is given, show
|
|
|
definition of available names.
|
|
|
|
|
|
Path names are defined in the [paths] section of /etc/mercurial/hgrc
|
|
|
and $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too.
|
|
|
|
|
|
pull <repository path>::
|
|
|
Pull changes from a remote repository to a local one.
|
|
|
|
|
|
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.
|
|
|
|
|
|
Valid URLs are of the form:
|
|
|
|
|
|
local/filesystem/path
|
|
|
http://[user@]host[:port][/path]
|
|
|
https://[user@]host[:port][/path]
|
|
|
ssh://[user@]host[:port][/path]
|
|
|
|
|
|
SSH requires an accessible shell account on the destination machine
|
|
|
and a copy of hg in the remote path. With SSH, paths are relative
|
|
|
to the remote user's home directory by default; use two slashes at
|
|
|
the start of a path to specify it as relative to the filesystem root.
|
|
|
|
|
|
options:
|
|
|
-u, --update update the working directory to tip after pull
|
|
|
-e, --ssh specify ssh command to use
|
|
|
--remotecmd specify hg command to run on the remote side
|
|
|
|
|
|
push <destination>::
|
|
|
Push changes from the local repository to the given destination.
|
|
|
|
|
|
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.
|
|
|
|
|
|
By default, push will refuse to run if it detects the result would
|
|
|
increase the number of remote heads. This generally indicates the
|
|
|
the client has forgotten to sync and merge before pushing.
|
|
|
|
|
|
Valid URLs are of the form:
|
|
|
|
|
|
local/filesystem/path
|
|
|
ssh://[user@]host[:port][/path]
|
|
|
|
|
|
SSH requires an accessible shell account on the destination
|
|
|
machine and a copy of hg in the remote path.
|
|
|
|
|
|
options:
|
|
|
|
|
|
-f, --force force update
|
|
|
-e, --ssh specify ssh command to use
|
|
|
--remotecmd specify hg command to run on the remote side
|
|
|
|
|
|
rawcommit [-p -d -u -F -m -l]::
|
|
|
Lowlevel commit, for use in helper scripts. (DEPRECATED)
|
|
|
|
|
|
This command is not intended to be used by normal users, as it is
|
|
|
primarily useful for importing from other SCMs.
|
|
|
|
|
|
This command is now deprecated and will be removed in a future
|
|
|
release, please use debugsetparents and commit instead.
|
|
|
|
|
|
recover::
|
|
|
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.
|
|
|
|
|
|
remove [options] [files ...]::
|
|
|
Schedule the indicated files for removal from the repository.
|
|
|
|
|
|
This command schedules the files to be removed at the next commit.
|
|
|
This only removes files from the current branch, not from the
|
|
|
entire project history. If the files still exist in the working
|
|
|
directory, they will be deleted from it.
|
|
|
|
|
|
aliases: rm
|
|
|
|
|
|
rename <source ...> <dest>::
|
|
|
Mark dest as copies of sources; mark sources for deletion. If
|
|
|
dest is a directory, copies are put in that directory. If dest is
|
|
|
a file, there can only be one source.
|
|
|
|
|
|
By default, this command copies the contents of files as they
|
|
|
stand in the working directory. If invoked with --after, the
|
|
|
operation is recorded, but no copying is performed.
|
|
|
|
|
|
This command takes effect in the next commit.
|
|
|
|
|
|
NOTE: This command should be treated as experimental. While it
|
|
|
should properly record rename files, this information is not yet
|
|
|
fully used by merge, nor fully reported by log.
|
|
|
|
|
|
Options:
|
|
|
-A, --after record a rename that has already occurred
|
|
|
-f, --force forcibly copy over an existing managed file
|
|
|
|
|
|
aliases: mv
|
|
|
|
|
|
revert [names ...]::
|
|
|
The revert command has two modes of operation.
|
|
|
|
|
|
In its default mode, it reverts any uncommitted modifications made
|
|
|
to the named files or directories. This restores the contents of
|
|
|
the affected files to an unmodified state.
|
|
|
|
|
|
Using the -r option, it reverts the given files or directories to
|
|
|
their state as of an earlier revision. This can be helpful to "roll
|
|
|
back" some or all of a change that should not have been committed.
|
|
|
|
|
|
Revert modifies the working directory. It does not commit any
|
|
|
changes, or change the parent of the current working directory.
|
|
|
|
|
|
If a file has been deleted, it is recreated. If the executable
|
|
|
mode of a file was changed, it is reset.
|
|
|
|
|
|
If a directory is given, all files in that directory and its
|
|
|
subdirectories are reverted.
|
|
|
|
|
|
If no arguments are given, all files in the current directory and
|
|
|
its subdirectories are reverted.
|
|
|
|
|
|
options:
|
|
|
-r, --rev <rev> revision to revert to
|
|
|
-n, --nonrecursive do not recurse into subdirectories
|
|
|
|
|
|
root::
|
|
|
Print the root directory of the current repository.
|
|
|
|
|
|
serve [options]::
|
|
|
Start a local HTTP repository browser and pull server.
|
|
|
|
|
|
By default, the server logs accesses to stdout and errors to
|
|
|
stderr. Use the "-A" and "-E" options to log to files.
|
|
|
|
|
|
options:
|
|
|
-A, --accesslog <file> name of access log file to write to
|
|
|
-E, --errorlog <file> name of error log file to write to
|
|
|
-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
|
|
|
-6, --ipv6 use IPv6 in addition to IPv4
|
|
|
|
|
|
status [options] [files]::
|
|
|
Show changed files in the working directory. If no names are
|
|
|
given, all files are shown. Otherwise, only files matching the
|
|
|
given names are shown.
|
|
|
|
|
|
The codes used to show the status of files are:
|
|
|
|
|
|
M = changed
|
|
|
A = added
|
|
|
R = removed
|
|
|
? = not tracked
|
|
|
|
|
|
options:
|
|
|
|
|
|
-m, --modified show only modified files
|
|
|
-a, --added show only added files
|
|
|
-r, --removed show only removed files
|
|
|
-u, --unknown show only unknown (not tracked) files
|
|
|
-n, --no-status hide status prefix
|
|
|
-0, --print0 end filenames with NUL, for use with xargs
|
|
|
-I, --include <pat> include names matching the given patterns
|
|
|
-X, --exclude <pat> exclude names matching the given patterns
|
|
|
|
|
|
tag [-l -m <text> -d <datecode> -u <user>] <name> [revision]::
|
|
|
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
|
|
|
earlier versions or to mark branch points as releases, etc.
|
|
|
|
|
|
If no revision is given, the tip is used.
|
|
|
|
|
|
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.
|
|
|
|
|
|
options:
|
|
|
-l, --local make the tag local
|
|
|
-m, --message <text> message for tag commit log entry
|
|
|
-d, --date <datecode> datecode for commit
|
|
|
-u, --user <user> user for commit
|
|
|
|
|
|
Note: Local tags are not version-controlled or distributed and are
|
|
|
stored in the .hg/localtags file. If there exists a local tag and
|
|
|
a public tag with the same name, local tag is used.
|
|
|
|
|
|
tags::
|
|
|
List the repository tags.
|
|
|
|
|
|
This lists both regular and local tags.
|
|
|
|
|
|
tip::
|
|
|
Show the tip revision.
|
|
|
|
|
|
unbundle <file>::
|
|
|
(EXPERIMENTAL)
|
|
|
|
|
|
Apply a compressed changegroup file generated by the bundle
|
|
|
command.
|
|
|
|
|
|
undo::
|
|
|
Undo the last commit or pull transaction.
|
|
|
|
|
|
Roll back the last pull or commit transaction on the
|
|
|
repository, restoring the project to its earlier state.
|
|
|
|
|
|
This command should be used with care. There is only one level of
|
|
|
undo and there is no redo.
|
|
|
|
|
|
This command is not intended for use on public repositories. Once
|
|
|
a change is visible for pull by other users, undoing it locally is
|
|
|
ineffective.
|
|
|
|
|
|
update [-m -C] [revision]::
|
|
|
Update the working directory to the specified revision.
|
|
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
|
|
FILE NAME PATTERNS
|
|
|
------------------
|
|
|
|
|
|
Mercurial accepts several notations for identifying one or more
|
|
|
files at a time.
|
|
|
|
|
|
By default, Mercurial treats filenames as shell-style extended
|
|
|
glob patterns.
|
|
|
|
|
|
Alternate pattern notations must be specified explicitly.
|
|
|
|
|
|
To use a plain path name without any pattern matching, start a
|
|
|
name with "path:". These path names must match completely, from
|
|
|
the root of the current repository.
|
|
|
|
|
|
To use an extended glob, start a name with "glob:". Globs are
|
|
|
rooted at the current directory; a glob such as "*.c" will match
|
|
|
files ending in ".c" in the current directory only.
|
|
|
|
|
|
The supported glob syntax extensions are "**" to match any string
|
|
|
across path separators, and "{a,b}" to mean "a or b".
|
|
|
|
|
|
To use a Perl/Python regular expression, start a name with "re:".
|
|
|
Regexp pattern matching is anchored at the root of the repository.
|
|
|
|
|
|
Plain examples:
|
|
|
|
|
|
path:foo/bar a name bar in a directory named foo in the root of
|
|
|
the repository
|
|
|
path:path:name a file or directory named "path:name"
|
|
|
|
|
|
Glob examples:
|
|
|
|
|
|
glob:*.c any name ending in ".c" in the current directory
|
|
|
*.c any name ending in ".c" in the current directory
|
|
|
**.c any name ending in ".c" in the current directory, or
|
|
|
any subdirectory
|
|
|
foo/*.c any name ending in ".c" in the directory foo
|
|
|
foo/**.c any name ending in ".c" in the directory foo, or any
|
|
|
subdirectory
|
|
|
|
|
|
Regexp examples:
|
|
|
|
|
|
re:.*\.c$ any name ending in ".c", anywhere in the repository
|
|
|
|
|
|
|
|
|
SPECIFYING SINGLE REVISIONS
|
|
|
---------------------------
|
|
|
|
|
|
Mercurial accepts several notations for identifying individual
|
|
|
revisions.
|
|
|
|
|
|
A plain integer is treated as a revision number. Negative
|
|
|
integers are treated as offsets from the tip, with -1 denoting the
|
|
|
tip.
|
|
|
|
|
|
A 40-digit hexadecimal string is treated as a unique revision
|
|
|
identifier.
|
|
|
|
|
|
A hexadecimal string less than 40 characters long is treated as a
|
|
|
unique revision identifier, and referred to as a short-form
|
|
|
identifier. A short-form identifier is only valid if it is the
|
|
|
prefix of one full-length identifier.
|
|
|
|
|
|
Any other string is treated as a tag name, which is a symbolic
|
|
|
name associated with a revision identifier. Tag names may not
|
|
|
contain the ":" character.
|
|
|
|
|
|
The reserved name "tip" is a special tag that always identifies
|
|
|
the most recent revision.
|
|
|
|
|
|
SPECIFYING MULTIPLE REVISIONS
|
|
|
-----------------------------
|
|
|
|
|
|
When Mercurial accepts more than one revision, they may be
|
|
|
specified individually, or provided as a continuous range,
|
|
|
separated by the ":" character.
|
|
|
|
|
|
The syntax of range notation is [BEGIN]:[END], where BEGIN and END
|
|
|
are revision identifiers. Both BEGIN and END are optional. If
|
|
|
BEGIN is not specified, it defaults to revision number 0. If END
|
|
|
is not specified, it defaults to the tip. The range ":" thus
|
|
|
means "all revisions".
|
|
|
|
|
|
If BEGIN is greater than END, revisions are treated in reverse
|
|
|
order.
|
|
|
|
|
|
A range acts as a closed interval. This means that a range of 3:5
|
|
|
gives 3, 4 and 5. Similarly, a range of 4:2 gives 4, 3, and 2.
|
|
|
|
|
|
ENVIRONMENT VARIABLES
|
|
|
---------------------
|
|
|
|
|
|
HGEDITOR::
|
|
|
This is the name of the editor to use when committing. Defaults to the
|
|
|
value of EDITOR.
|
|
|
|
|
|
(deprecated, use .hgrc)
|
|
|
|
|
|
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.
|
|
|
|
|
|
(deprecated, use .hgrc)
|
|
|
|
|
|
HGUSER::
|
|
|
This is the string used for the author of a commit.
|
|
|
|
|
|
(deprecated, use .hgrc)
|
|
|
|
|
|
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 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
|
|
|
separated by spaces) that correspond to tagged versions of the repository
|
|
|
contents.
|
|
|
|
|
|
/etc/mercurial/hgrc, $HOME/.hgrc, .hg/hgrc::
|
|
|
This file contains defaults and configuration. Values in .hg/hgrc
|
|
|
override those in $HOME/.hgrc, and these override settings made in the
|
|
|
global /etc/mercurial/hgrc configuration. See hgrc(5) for details of
|
|
|
the contents and format of these files.
|
|
|
|
|
|
BUGS
|
|
|
----
|
|
|
Probably lots, please post them to the mailing list (See Resources below)
|
|
|
when you find them.
|
|
|
|
|
|
SEE ALSO
|
|
|
--------
|
|
|
hgrc(5)
|
|
|
|
|
|
AUTHOR
|
|
|
------
|
|
|
Written by Matt Mackall <mpm@selenic.com>
|
|
|
|
|
|
RESOURCES
|
|
|
---------
|
|
|
http://selenic.com/mercurial[Main Web Site]
|
|
|
|
|
|
http://www.serpentine.com/mercurial[Wiki 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).
|
|
|
|