From 5a92a6ce90d6dbabf8075164e089e1cffbd351f7 Mon Sep 17 00:00:00 2001 From: Pete Wyckoff Date: Sat, 24 Dec 2011 21:07:36 -0500 Subject: [PATCH] git-p4: document and test --import-local Explain that it is needed on future syncs to find p4 branches in refs/heads. Test this behavior. Signed-off-by: Pete Wyckoff Signed-off-by: Junio C Hamano --- Documentation/git-p4.txt | 4 +++- t/t9806-git-p4-options.sh | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt index 9305e09987..9930829139 100644 --- a/Documentation/git-p4.txt +++ b/Documentation/git-p4.txt @@ -211,7 +211,9 @@ git repository: By default, p4 branches are stored in 'refs/remotes/p4/', where they will be treated as remote-tracking branches by linkgit:git-branch[1] and other commands. This option instead - puts p4 branches in 'refs/heads/p4/'. + puts p4 branches in 'refs/heads/p4/'. Note that future + sync operations must specify '--import-local' as well so that + they can find the p4 branches in refs/heads. --max-changes :: Limit the number of imported changes to 'n'. Useful to diff --git a/t/t9806-git-p4-options.sh b/t/t9806-git-p4-options.sh index 7a1dba6e17..67703267be 100755 --- a/t/t9806-git-p4-options.sh +++ b/t/t9806-git-p4-options.sh @@ -61,6 +61,28 @@ test_expect_success 'clone --changesfile, @all' ' test_must_fail "$GITP4" clone --changesfile="$cf" --dest="$git" //depot@all ' +# imports both master and p4/master in refs/heads +# requires --import-local on sync to find p4 refs/heads +# does not update master on sync, just p4/master +test_expect_success 'clone/sync --import-local' ' + "$GITP4" clone --import-local --dest="$git" //depot@1,2 && + test_when_finished cleanup_git && + ( + cd "$git" && + git log --oneline refs/heads/master >lines && + test_line_count = 2 lines && + git log --oneline refs/heads/p4/master >lines && + test_line_count = 2 lines && + test_must_fail "$GITP4" sync && + + "$GITP4" sync --import-local && + git log --oneline refs/heads/master >lines && + test_line_count = 2 lines && + git log --oneline refs/heads/p4/master >lines && + test_line_count = 3 lines + ) +' + test_expect_success 'kill p4d' ' kill_p4d '