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:
Junio C Hamano 2010-01-13 00:12:54 -08:00
Родитель bed575e400
Коммит f9c01817bb
1 изменённых файлов: 109 добавлений и 0 удалений

Просмотреть файл

@ -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