comparison mercurial/commands.py @ 10649:e13797685ee6

merge with stable
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Thu, 11 Mar 2010 15:38:35 +0100
parents 63948e7d37f7 ac280ab55c9f
children 9ea7238ad935
comparison
equal deleted inserted replaced
10647:4ba41eebb3a8 10649:e13797685ee6
623 623
624 It is possible to specify an ``ssh://`` URL as the destination, but no 624 It is possible to specify an ``ssh://`` URL as the destination, but no
625 .hg/hgrc and working directory will be created on the remote side. 625 .hg/hgrc and working directory will be created on the remote side.
626 Please see 'hg help urls' for important details about ``ssh://`` URLs. 626 Please see 'hg help urls' for important details about ``ssh://`` URLs.
627 627
628 If the -U/--noupdate option is specified, the new clone will contain
629 only a repository (.hg) and no working copy (the working copy parent
630 will be the null changeset). Otherwise, clone will initially check
631 out (in order of precedence):
632
633 a) the changeset, tag or branch specified with -u/--updaterev
634 b) the changeset, tag or branch given with the first -r/--rev
635 c) the branch given with the first -b/--branch
636 d) the branch given with the url#branch source syntax
637 e) the head of the default branch
638
639 Use 'hg clone -u . src dst' to checkout the source repository's
640 parent changeset (applicable for local source repositories only).
641
642 A set of changesets (tags, or branch names) to pull may be specified 628 A set of changesets (tags, or branch names) to pull may be specified
643 by listing each changeset (tag, or branch name) with -r/--rev. 629 by listing each changeset (tag, or branch name) with -r/--rev.
644 If -r/--rev is used, the cloned repository will contain only a subset 630 If -r/--rev is used, the cloned repository will contain only a subset
645 of the changesets of the source repository. Only the set of changesets 631 of the changesets of the source repository. Only the set of changesets
646 defined by all -r/--rev options (including all their ancestors) 632 defined by all -r/--rev options (including all their ancestors)
651 Using -r/--rev (or 'clone src#rev dest') implies --pull, even for 637 Using -r/--rev (or 'clone src#rev dest') implies --pull, even for
652 local source repositories. 638 local source repositories.
653 639
654 For efficiency, hardlinks are used for cloning whenever the source 640 For efficiency, hardlinks are used for cloning whenever the source
655 and destination are on the same filesystem (note this applies only 641 and destination are on the same filesystem (note this applies only
656 to the repository data, not to the checked out files). Some 642 to the repository data, not to the working directory). Some
657 filesystems, such as AFS, implement hardlinking incorrectly, but 643 filesystems, such as AFS, implement hardlinking incorrectly, but
658 do not report errors. In these cases, use the --pull option to 644 do not report errors. In these cases, use the --pull option to
659 avoid hardlinking. 645 avoid hardlinking.
660 646
661 In some cases, you can clone repositories and checked out files 647 In some cases, you can clone repositories and the working directory
662 using full hardlinks with :: 648 using full hardlinks with ::
663 649
664 $ cp -al REPO REPOCLONE 650 $ cp -al REPO REPOCLONE
665 651
666 This is the fastest way to clone, but it is not always safe. The 652 This is the fastest way to clone, but it is not always safe. The
667 operation is not atomic (making sure REPO is not modified during 653 operation is not atomic (making sure REPO is not modified during
668 the operation is up to you) and you have to make sure your editor 654 the operation is up to you) and you have to make sure your editor
669 breaks hardlinks (Emacs and most Linux Kernel tools do so). Also, 655 breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,
670 this is not compatible with certain extensions that place their 656 this is not compatible with certain extensions that place their
671 metadata under the .hg directory, such as mq. 657 metadata under the .hg directory, such as mq.
658
659 Mercurial will update the working directory to the first applicable
660 revision from this list:
661
662 a) null if -U or the source repository has no changesets
663 b) if -u . and the source repository is local, the first parent of
664 the source repository's working directory
665 c) the changeset specified with -u (if a branch name, this means the
666 latest head of that branch)
667 d) the changeset specified with -r
668 e) the tipmost head specified with -b
669 f) the tipmost head specified with the url#branch source syntax
670 g) the tipmost head of the default branch
671 h) tip
672 """ 672 """
673 if opts.get('noupdate') and opts.get('updaterev'): 673 if opts.get('noupdate') and opts.get('updaterev'):
674 raise util.Abort(_("cannot specify both --noupdate and --updaterev")) 674 raise util.Abort(_("cannot specify both --noupdate and --updaterev"))
675 675
676 hg.clone(cmdutil.remoteui(ui, opts), source, dest, 676 hg.clone(cmdutil.remoteui(ui, opts), source, dest,