| #!/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 |