Help: clone
hg clone [OPTION]... SOURCE [DEST]
make a copy of an existing repository
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.
Only local paths and "ssh://" URLs are supported as destinations. For
"ssh://" destinations, no working directory or ".hg/hgrc" will be created
on the remote side.
To pull only a subset of changesets, specify one or more revisions
identifiers with -r/--rev or branches with -b/--branch. The resulting
clone will contain only the specified changesets and their ancestors.
These options (or 'clone src#rev dest') imply --pull, even for local
source repositories. Note that specifying a tag will include the tagged
changeset but not the changeset containing the tag.
To check out a particular version, use -u/--update, or -U/--noupdate to
create a clone with no working directory.
For efficiency, hardlinks are used for cloning whenever the source and
destination are on the same filesystem (note this applies only to the
repository data, not to the working directory). Some filesystems, such as
AFS, implement hardlinking incorrectly, but do not report errors. In these
cases, use the --pull option to avoid hardlinking.
In some cases, you can clone repositories and the working directory using
full hardlinks with
$ cp -al REPO REPOCLONE
This is the fastest way to clone, but it is not always safe. The operation
is not atomic (making sure REPO is not modified during the operation is up
to you) and you have to make sure your editor breaks hardlinks (Emacs and
most Linux Kernel tools do so). Also, this is not compatible with certain
extensions that place their metadata under the .hg directory, such as mq.
Mercurial will update the working directory to the first applicable
revision from this list:
a) null if -U or the source repository has no changesets
b) if -u . and the source repository is local, the first parent of the
source repository's working directory
c) the changeset specified with -u (if a branch name, this means the
latest head of that branch)
d) the changeset specified with -r
e) the tipmost head specified with -b
f) the tipmost head specified with the url#branch source syntax
g) the tipmost head of the default branch
h) tip
Examples:
- clone a remote repository to a new directory named hg/:
hg clone http://selenic.com/hg
- create a lightweight local clone:
hg clone project/ project-feature/
- clone from an absolute path on an ssh server (note double-slash):
hg clone ssh://user@server//home/projects/alpha/
- do a high-speed clone over a LAN while checking out a specified version:
hg clone --uncompressed http://server/repo -u 1.5
- create a repository without changesets after a particular revision:
hg clone -r 04e544 experimental/ good/
- clone (and track) a particular named branch:
hg clone http://selenic.com/hg#stable
See "hg help urls" for details on specifying URLs.
Returns 0 on success.
options:
-U --noupdate the clone will include an empty working copy (only a
repository)
-u --updaterev REV revision, tag or branch to check out
-r --rev REV [+] include the specified changeset
-b --branch BRANCH [+] clone only the specified branch
--pull use pull protocol to copy metadata
--uncompressed use uncompressed transfer (fast over LAN)
-e --ssh CMD specify ssh command to use
--remotecmd CMD specify hg command to run on the remote side
--insecure do not verify server certificate (ignoring web.cacerts
config)
[+] marked option can be specified multiple times
global options:
-R --repository REPO repository root directory or name of overlay bundle
file
--cwd DIR change working directory
-y --noninteractive do not prompt, automatically pick the first choice for
all prompts
-q --quiet suppress output
-v --verbose enable additional output
--config CONFIG [+] set/override config option (use 'section.name=value')
--debug enable debugging output
--debugger start debugger
--encoding ENCODE set the charset encoding (default: ascii)
--encodingmode MODE set the charset encoding mode (default: strict)
--traceback always print a 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
[+] marked option can be specified multiple times