diff options
author | Pete Wyckoff <pw@padd.com> | 2013-01-14 19:47:01 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-01-15 09:46:29 -0800 |
commit | c595956db99a728ab2247b564c8283cf5c0d84e6 (patch) | |
tree | 5eba33238d85eed1356475e18bb61150be052628 | |
parent | 695d69989429e9268c0587e3606399fc9d6cd6fa (diff) | |
download | git-c595956db99a728ab2247b564c8283cf5c0d84e6.tar.gz |
git p4: clone --branch should checkout master
When using the --branch argument to "git p4 clone", one
might specify a destination for p4 changes different from
the default refs/remotes/p4/master. Both cases should
create a master branch and checkout files.
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | Documentation/git-p4.txt | 3 | ||||
-rwxr-xr-x | git-p4.py | 20 | ||||
-rwxr-xr-x | t/t9806-git-p4-options.sh | 2 |
3 files changed, 11 insertions, 14 deletions
diff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt index beff6229c8..2623bee5fc 100644 --- a/Documentation/git-p4.txt +++ b/Documentation/git-p4.txt @@ -174,8 +174,7 @@ subsequent 'sync' operations. --branch <branch>:: Import changes into given branch. If the branch starts with 'refs/', it will be used as is, otherwise the path 'refs/heads/' - will be prepended. The default branch is 'master'. If used - with an initial clone, no HEAD will be checked out. + will be prepended. The default branch is 'p4/master'. + This example imports a new remote "p4/proj2" into an existing git repository: @@ -3118,17 +3118,15 @@ class P4Clone(P4Sync): if not P4Sync.run(self, depotPaths): return False - if self.branch != "master": - if self.importIntoRemotes: - masterbranch = "refs/remotes/p4/master" - else: - masterbranch = "refs/heads/p4/master" - if gitBranchExists(masterbranch): - system("git branch master %s" % masterbranch) - if not self.cloneBare: - system("git checkout -f") - else: - print "Could not detect main branch. No checkout/master branch created." + + # create a master branch and check out a work tree + if gitBranchExists(self.branch): + system([ "git", "branch", "master", self.branch ]) + if not self.cloneBare: + system([ "git", "checkout", "-f" ]) + else: + print 'Not checking out any branch, use ' \ + '"git checkout -q -b master <branch>"' # auto-set this variable if invoked with --use-client-spec if self.useClientSpec_from_options: diff --git a/t/t9806-git-p4-options.sh b/t/t9806-git-p4-options.sh index 4900aef19e..2ad3a3e0ca 100755 --- a/t/t9806-git-p4-options.sh +++ b/t/t9806-git-p4-options.sh @@ -27,7 +27,7 @@ test_expect_success 'clone no --git-dir' ' test_must_fail git p4 clone --git-dir=xx //depot ' -test_expect_failure 'clone --branch should checkout master' ' +test_expect_success 'clone --branch should checkout master' ' git p4 clone --branch=refs/remotes/p4/sb --dest="$git" //depot && test_when_finished cleanup_git && ( |