bk clone(7.3ce)             BitKeeper User's Manual            bk clone(7.3ce)

NAME
       bk clone - create a new copy of a package

SYNOPSIS
       bk clone [-q] [-r<rev>] [-s<alias>] [<more opts>] <from> [<to>]

DESCRIPTION
       The  clone command copies from the <from> repository and creates a copy
       at <to>.  If <to> is not specified then the basename of <from>  is  the
       implied  destination.   This  works  for  fully and partially specified
       ing information.

       If  <bam_url> is specified, it tells the destination repository what to
       use as a BAM server.  Normally a new repository inherits the BAM server
       URL from the source repository.  This argument is required when cloning
       a BAM server to a BKD.

       If <rev> is specified, the cloned repository will include only  change-
       sets up to and including <rev>.

       When cloning a product, the set of components to populate is defined by
       the -s option.  If -s is not specified on the  command  line  then  the
       alias  in  the  clone_default  config  is used.  Without clone_default,
       -sALL is used as a default.

       The cloned repository remembers from which repository  it  was  cloned.
       The  <from> repository is known as the "parent," while the newly cloned
       repository is known as the "child."

       Subsequent updates to  the  child  can  be  done  by  running  bk pull.
       Changes made in the child can be pushed back into the parent by running
       bk push.

NOTE
       Only completed changesets are cloned.  Any pending deltas  are  removed
       from the child before the clone completes.

       On  recent  (2014)  versions of Ubuntu (and other Linux distributions),
       the use of hardlinks has been curtailed for  security  reasons.   Clone
       will   fall   back  to  using  copies,  see  http://man7.org/linux/man-
       pages/man5/proc.5.html  and  search  for  protected_hardlinks.    Using
       copies  instead of links is slower and takes more disk space so you may
       want to disable this security feature if all of your users are trusted.

OPTIONS
       -@<base_url>      Use a local repository as a baseline for the clone so
                         that  only  the changes need to be transferred from a
                         remote location.
       -B<url>           Set the BAM server url to <url>  in  the  destination
                         repository.
       --checkout=<mode> Override  any previous setting for the checkout mode.
                         Valid values for <mode> are none, get, or edit.  Note
                         that  this mode becomes "sticky" in that the checkout
                         mode will  added  to  `bk root`/BitKeeper/log/config.
                         If  no  other  config  overrides that, then this mode
                         will "stick" for subsequent updates.
       --downgrade       By default, new clones will use the same storage for-
                         mat  as  the  repository  being cloned.  This options
                         forces the new clone to use the older, backwards com-
                         patible format (at the cost of lower performance).
       -E<env>=<val>     Export  an environment variable to the bkd running in
                         the remote BitKeeper repository.  Typically  used  to
                         pass  information to remote triggers.  Only variables
                         with the prefix BKU_ are allowed.
       --identical       When cloning a product, have  the  set  of  populated
                         aliases  be identical to the repository where the tip
                         ChangeSet was created.  This option  is  incompatible
                         with -s.
       -j<jobs>          Set  the  level  of parallelism for the unpacking and
                         checking out of files.
       --no-hardlinks    Clone nomally uses hard links whenever it can.   This
                         option  will  prevent this and is useful to create an
                         archive of a repository that copies every file.
       --parents         Instead of setting the parent to the <from> url,  use
                         <from's>  parents.   Useful  when  you  want  to pull
                         from/push to the same places as <from>.
       -q                Run quietly.
       -r<rev>           Clone the repository up to and including cset  <rev>.
                         A  changeset  number  or changeset key can be used to
                         tion.
       -s<alias>         When  cloning  a product, limit the components to the
                         subset  implied  by  <alias>.   If  this  option   is
                         repeated the implied subset is the union of all spec-
                         ified components.  <alias> may be a component  or  an
                         alias  for  a  set of components.  The option -sTHERE
                         can be use to make the destination of the clone  have
                         the same components populated as the source.
       --upgrade         By default, new clones will use the same storage for-
                         mat as the  repository  being  cloned.   This  option
                         forces the new clone to upgrade to the latest storage
                         format.  In bk-6.0, the storage format was changed to
                         support higher performance.

SEE ALSO
       bk alias
       bk bam
       bk bkd
       bk parent
       bk pull
       bk push
       bk relink
       bk terms
       bk triggers
       bk url

CATEGORY
       Common
       Repository

BitKeeper Inc                         1E1                      bk clone(7.3ce)