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.
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.
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.
In normal clone mode, the remote normalizes repository data into a common exchange format and the receiving end translates this data into its local storage format. --stream activates a different clone mode that essentially copies repository files from the remote with minimal data processing. This significantly reduces the CPU cost of a clone both remotely and locally. However, it often increases the transferred data size by 30-40%. This can result in substantially faster clones where I/O throughput is plentiful, especially for larger repositories. A side-effect of --stream clones is that storage settings and requirements on the remote are applied locally: a modern client may inherit legacy or inefficient storage used by the remote or a legacy Mercurial client may not be able to clone from a modern Mercurial remote.
Note:
Specifying a tag will include the tagged changeset but not the changeset containing the tag.
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.
Mercurial will update the working directory to the first applicable revision from this list:
When cloning from servers that support it, Mercurial may fetch pre-generated data from a server-advertised URL. When this is done, hooks operating on incoming changesets and changegroups may fire twice, once for the bundle fetched from the URL and another for any additional data not fetched from this URL. In addition, if an error occurs, the repository may be rolled back to a partial clone. This behavior may change in future releases. See 'hg help -e clonebundles' for more.
Examples:
hg clone https://www.mercurial-scm.org/repo/hg/
hg clone project/ project-feature/
hg clone ssh://user@server//home/projects/alpha/
hg clone --stream http://server/repo -u 1.5
hg clone -r 04e544 experimental/ good/
hg clone https://www.mercurial-scm.org/repo/hg/#stable
See 'hg help urls' for details on specifying URLs.
Returns 0 on success.
options ([+] can be repeated):
-U | --noupdate | the clone will include an empty working directory (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 | an alias to --stream (DEPRECATED) | |
--stream | clone with minimal data processing | |
-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) |
global options ([+] can be repeated):
-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 |
--color TYPE | when to colorize (boolean, always, auto, never, or debug) | |
--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 | |
--pager TYPE | when to paginate (boolean, always, auto, or never) (default: auto) |