diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2010-01-26 10:08:44 -0600 |
---|---|---|
committer | Jonathan Nieder <jrnieder@gmail.com> | 2010-01-26 10:08:44 -0600 |
commit | 225f78c817755bebff91629cc525a258cf60eaea (patch) | |
tree | fc8146efeb2e2165d5427854f7f36d78fa59e168 /t/t7502-commit.sh | |
parent | Makefile: drop dependency on $(wildcard */*.h) (diff) | |
parent | am: fix patch format detection for Thunderbird "Save As" emails (diff) | |
download | tgif-225f78c817755bebff91629cc525a258cf60eaea.tar.xz |
Merge branch 'master' of git://repo.or.cz/alt-git into jn/autodep
* 'master' of git://repo.or.cz/alt-git: (384 commits)
am: fix patch format detection for Thunderbird "Save As" emails
t0022: replace non-portable literal CR
tests: consolidate CR removal/addition functions
commit-tree: remove unused #define
t5541-http-push: make grep expression check for one line only
rebase: replace antiquated sed invocation
Add test-run-command to .gitignore
git_connect: use use_shell instead of explicit "sh", "-c"
gitweb.js: Workaround for IE8 bug
Make test numbers unique
Windows: Remove dependency on pthreadGC2.dll
Documentation: move away misplaced 'push --upstream' description
Documentation: add missing :: in config.txt
pull: re-fix command line generation
Documentation: merge: use MERGE_HEAD to refer to the remote branch
Documentation: simplify How Merge Works
Documentation: merge: add a section about fast-forward
Documentation: emphasize when git merge terminates early
Documentation: merge: add an overview
Documentation: merge: move merge strategy list to end
...
Conflicts:
Makefile
Diffstat (limited to 't/t7502-commit.sh')
-rwxr-xr-x | t/t7502-commit.sh | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh index fe94552296..844fb43c6d 100755 --- a/t/t7502-commit.sh +++ b/t/t7502-commit.sh @@ -267,4 +267,113 @@ test_expect_success 'A single-liner subject with a token plus colon is not a foo ' +cat >.git/FAKE_EDITOR <<EOF +#!$SHELL_PATH +mv "\$1" "\$1.orig" +( + echo message + cat "\$1.orig" +) >"\$1" +EOF + +echo '## Custom template' >template + +clear_config () { + ( + git config --unset-all "$1" + case $? in + 0|5) exit 0 ;; + *) exit 1 ;; + esac + ) +} + +try_commit () { + git reset --hard && + echo >>negative && + GIT_EDITOR=.git/FAKE_EDITOR git commit -a $* $use_template && + case "$use_template" in + '') + ! grep "^## Custom template" .git/COMMIT_EDITMSG ;; + *) + grep "^## Custom template" .git/COMMIT_EDITMSG ;; + esac +} + +try_commit_status_combo () { + + test_expect_success 'commit' ' + clear_config commit.status && + try_commit "" && + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit' ' + clear_config commit.status && + try_commit "" && + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit --status' ' + clear_config commit.status && + try_commit --status && + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit --no-status' ' + clear_config commit.status && + try_commit --no-status + ! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit with commit.status = yes' ' + clear_config commit.status && + git config commit.status yes && + try_commit "" && + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit with commit.status = no' ' + clear_config commit.status && + git config commit.status no && + try_commit "" && + ! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit --status with commit.status = yes' ' + clear_config commit.status && + git config commit.status yes && + try_commit --status && + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit --no-status with commit.status = yes' ' + clear_config commit.status && + git config commit.status yes && + try_commit --no-status && + ! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit --status with commit.status = no' ' + clear_config commit.status && + git config commit.status no && + try_commit --status && + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + + test_expect_success 'commit --no-status with commit.status = no' ' + clear_config commit.status && + git config commit.status no && + try_commit --no-status && + ! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG + ' + +} + +try_commit_status_combo + +use_template="-t template" + +try_commit_status_combo + test_done |