t7502: test commit.status, --status and --no-status
Make sure that the status information: - is shown as before without configuration nor command line option; - is shown if commit.status is set to true and no command line option is given, or --status is explicitly given; - is not shown if commit.status is set to false and no command line option is given, or --no-status is explicitly given. Also make sure that the way lines taken from the custom --template appear in the log message editor is not changed at all. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
bed575e400
commit
f9c01817bb
@ -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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user