git/t/t9807-git-p4-submit.sh
Pete Wyckoff 28755dbaa5 git-p4: document and test submit options
Clarify there is a -M option, but no -C.  These are both
configurable through variables.

Explain that the allowSubmit variable takes a comma-separated
list of branch names.

Catch earlier an invalid branch name given as an argument to
"git p4 clone".

Test option --origin, variable allowSubmit, and explicit master
branch name.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-12-27 10:19:31 -08:00

93 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
test_description='git-p4 submit'
. ./lib-git-p4.sh
test_expect_success 'start p4d' '
start_p4d
'
test_expect_success 'init depot' '
(
cd "$cli" &&
echo file1 >file1 &&
p4 add file1 &&
p4 submit -d "change 1"
)
'
test_expect_success 'submit with no client dir' '
test_when_finished cleanup_git &&
"$GITP4" clone --dest="$git" //depot &&
(
cd "$git" &&
echo file2 >file2 &&
git add file2 &&
git commit -m "git commit 2" &&
rm -rf "$cli" &&
git config git-p4.skipSubmitEdit true &&
"$GITP4" submit
)
'
# make two commits, but tell it to apply only from HEAD^
test_expect_success 'submit --origin' '
test_when_finished cleanup_git &&
"$GITP4" clone --dest="$git" //depot &&
(
cd "$git" &&
test_commit "file3" &&
test_commit "file4" &&
git config git-p4.skipSubmitEdit true &&
"$GITP4" submit --origin=HEAD^
) &&
(
cd "$cli" &&
p4 sync &&
test_path_is_missing "file3.t" &&
test_path_is_file "file4.t"
)
'
test_expect_success 'submit with allowSubmit' '
test_when_finished cleanup_git &&
"$GITP4" clone --dest="$git" //depot &&
(
cd "$git" &&
test_commit "file5" &&
git config git-p4.skipSubmitEdit true &&
git config git-p4.allowSubmit "nobranch" &&
test_must_fail "$GITP4" submit &&
git config git-p4.allowSubmit "nobranch,master" &&
"$GITP4" submit
)
'
test_expect_success 'submit with master branch name from argv' '
test_when_finished cleanup_git &&
"$GITP4" clone --dest="$git" //depot &&
(
cd "$git" &&
test_commit "file6" &&
git config git-p4.skipSubmitEdit true &&
test_must_fail "$GITP4" submit nobranch &&
git branch otherbranch &&
git reset --hard HEAD^ &&
test_commit "file7" &&
"$GITP4" submit otherbranch
) &&
(
cd "$cli" &&
p4 sync &&
test_path_is_file "file6.t" &&
test_path_is_missing "file7.t"
)
'
test_expect_success 'kill p4d' '
kill_p4d
'
test_done