From c595956db99a728ab2247b564c8283cf5c0d84e6 Mon Sep 17 00:00:00 2001 From: Pete Wyckoff Date: Mon, 14 Jan 2013 19:47:01 -0500 Subject: [PATCH] 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 Signed-off-by: Junio C Hamano --- Documentation/git-p4.txt | 3 +-- git-p4.py | 20 +++++++++----------- 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 beff6229c..2623bee5f 100644 --- a/Documentation/git-p4.txt +++ b/Documentation/git-p4.txt @@ -174,8 +174,7 @@ subsequent 'sync' operations. --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: diff --git a/git-p4.py b/git-p4.py index 7a0c0409b..c59ad9303 100755 --- a/git-p4.py +++ b/git-p4.py @@ -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 "' # 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 4900aef19..2ad3a3e0c 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 && ( -- 2.26.2