Provided by: mercurial-common_6.9.4-1_all bug

NAME

       hg clone - make a copy of an existing repository

SYNOPSIS

       hg clone [OPTION]... SOURCE [DEST]

DESCRIPTION

       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:

       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 revision marked with the '@' bookmark, if present

       h. the tipmost head of the default branch

       i. tip

          When  cloning  from  servers  that  support  it,  Mercurial  may  fetch  pre-generated  data  from   a
          server-advertised  URL  or inline from the same stream. When this is done, hooks operating on incoming
          changesets and changegroups may fire more than once, once for each pre-generated bundle and as well as
          for any additional remaining data. 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:

       • clone a remote repository to a new directory named hg/:

         hg clone https://www.mercurial-scm.org/repo/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 streaming clone while checking out a specified version:

         hg clone --stream 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 https://www.mercurial-scm.org/repo/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 directory (only a repository)

       -u,--updaterev <REV>
              revision, tag, or branch to check out

       -r,--rev <REV[+]>
              do not clone everything, but include this changeset and its ancestors

       -b,--branch <BRANCH[+]>
              do not clone everything, but include this branch's changesets and their ancestors

       --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)

              [+] marked option can be specified multiple times

                                                                                                       HG(CLONE)