Code

git-p4: document and test --import-local
authorPete Wyckoff <pw@padd.com>
Sun, 25 Dec 2011 02:07:36 +0000 (21:07 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Dec 2011 18:19:30 +0000 (10:19 -0800)
Explain that it is needed on future syncs to find p4 branches
in refs/heads.  Test this behavior.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-p4.txt
t/t9806-git-p4-options.sh

index 9305e099874b259d3aa3ebfd6c7f2a47b73948fc..9930829139ed1afb35b45a569c5069646561d865 100644 (file)
@@ -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 <n>::
        Limit the number of imported changes to 'n'.  Useful to
index 7a1dba6e174e960e19abec1744f586d3abc8e45b..67703267be944c7a89d1a90e600dfdf4b25e5d2c 100755 (executable)
@@ -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
 '