summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/git-p4.txt4
-rwxr-xr-xt/t9806-git-p4-options.sh22
2 files changed, 25 insertions, 1 deletions
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 <n>::
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
'