summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Wyckoff <pw@padd.com>2011-12-24 21:07:34 -0500
committerJunio C Hamano <gitster@pobox.com>2011-12-27 10:19:30 -0800
commit1471c6b1558f45fa11ad606fc9ea72261d965284 (patch)
treea3d01f9a23ce264a04349e008dcd4a4ae1e66f40
parentda191d15bfd690e679a9626cba527465e0aafabb (diff)
downloadgit-1471c6b1558f45fa11ad606fc9ea72261d965284.tar.gz
git-p4: document and test clone --branch
Clone with --branch will not checkout HEAD, unless the branch happens to be called the default refs/remotes/p4/master. The --branch option is most useful with sync; give an example of that. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/git-p4.txt10
-rwxr-xr-xt/t9806-git-p4-options.sh11
2 files changed, 20 insertions, 1 deletions
diff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt
index befb21704a..9305e09987 100644
--- a/Documentation/git-p4.txt
+++ b/Documentation/git-p4.txt
@@ -178,7 +178,15 @@ 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'.
+ will be prepended. The default branch is 'master'. If used
+ with an initial clone, no HEAD will be checked out.
++
+This example imports a new remote "p4/proj2" into an existing
+git repository:
+----
+ $ git init
+ $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2
+----
--detect-branches::
Use the branch detection algorithm to find new paths in p4. It is
diff --git a/t/t9806-git-p4-options.sh b/t/t9806-git-p4-options.sh
index 8044fb035e..7e2e45af17 100755
--- a/t/t9806-git-p4-options.sh
+++ b/t/t9806-git-p4-options.sh
@@ -27,6 +27,17 @@ test_expect_success 'clone no --git-dir' '
test_must_fail "$GITP4" clone --git-dir=xx //depot
'
+test_expect_success 'clone --branch' '
+ "$GITP4" clone --branch=refs/remotes/p4/sb --dest="$git" //depot &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ git ls-files >files &&
+ test_line_count = 0 files &&
+ test_path_is_file .git/refs/remotes/p4/sb
+ )
+'
+
test_expect_success 'kill p4d' '
kill_p4d
'