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>
This commit is contained in:
Pete Wyckoff 2011-12-24 21:07:34 -05:00 committed by Junio C Hamano
parent da191d15bf
commit 1471c6b155
2 changed files with 20 additions and 1 deletions

View file

@ -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

View file

@ -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
'