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.
If the source repository has a bookmark called '@' set, that revision will be checked out in the new repository by default.
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:
Examples:
hg clone http://selenic.com/hg
hg clone project/ project-feature/
hg clone ssh://user@server//home/projects/alpha/
hg clone --uncompressed http://server/repo -u 1.5
hg clone -r 04e544 experimental/ good/
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 |
--hidden | consider hidden changesets |
[+] marked option can be specified multiple times