@ -4,6 +4,15 @@ test_description='git commit porcelain-ish'
@@ -4,6 +4,15 @@ test_description='git commit porcelain-ish'
. ./test-lib.sh
commit_msg_is () {
expect=commit_msg_is.expect
actual=commit_msg_is.actual
printf "%s" "$(git log --pretty=format:%s%b -1)" >$actual &&
printf "%s" "$1" >$expect &&
test_i18ncmp $expect $actual
}
# Arguments: [<prefix] [<commit message>] [<commit options>]
check_summary_oneline() {
test_tick &&
@ -168,7 +177,7 @@ test_expect_success 'verbose respects diff config' '
@@ -168,7 +177,7 @@ test_expect_success 'verbose respects diff config' '
git config --unset color.diff
'
test_expect_success 'cleanup commit messages (verbatim,-t)' '
test_expect_success 'cleanup commit messages (verbatim option,-t)' '
echo >>negative &&
{ echo;echo "# text";echo; } >expect &&
@ -178,7 +187,7 @@ test_expect_success 'cleanup commit messages (verbatim,-t)' '
@@ -178,7 +187,7 @@ test_expect_success 'cleanup commit messages (verbatim,-t)' '
'
test_expect_success 'cleanup commit messages (verbatim,-F)' '
test_expect_success 'cleanup commit messages (verbatim option,-F)' '
echo >>negative &&
git commit --cleanup=verbatim -F expect -a &&
@ -187,7 +196,7 @@ test_expect_success 'cleanup commit messages (verbatim,-F)' '
@@ -187,7 +196,7 @@ test_expect_success 'cleanup commit messages (verbatim,-F)' '
'
test_expect_success 'cleanup commit messages (verbatim,-m)' '
test_expect_success 'cleanup commit messages (verbatim option,-m)' '
echo >>negative &&
git commit --cleanup=verbatim -m "$(cat expect)" -a &&
@ -196,7 +205,7 @@ test_expect_success 'cleanup commit messages (verbatim,-m)' '
@@ -196,7 +205,7 @@ test_expect_success 'cleanup commit messages (verbatim,-m)' '
'
test_expect_success 'cleanup commit messages (whitespace,-F)' '
test_expect_success 'cleanup commit messages (whitespace option,-F)' '
echo >>negative &&
{ echo;echo "# text";echo; } >text &&
@ -207,7 +216,7 @@ test_expect_success 'cleanup commit messages (whitespace,-F)' '
@@ -207,7 +216,7 @@ test_expect_success 'cleanup commit messages (whitespace,-F)' '
'
test_expect_success 'cleanup commit messages (strip,-F)' '
test_expect_success 'cleanup commit messages (strip option,-F)' '
echo >>negative &&
{ echo;echo "# text";echo sample;echo; } >text &&
@ -218,7 +227,7 @@ test_expect_success 'cleanup commit messages (strip,-F)' '
@@ -218,7 +227,7 @@ test_expect_success 'cleanup commit messages (strip,-F)' '
'
test_expect_success 'cleanup commit messages (strip,-F,-e)' '
test_expect_success 'cleanup commit messages (strip option,-F,-e)' '
echo >>negative &&
{ echo;echo sample;echo; } >text &&
@ -231,10 +240,71 @@ echo "sample
@@ -231,10 +240,71 @@ echo "sample
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit." >expect
test_expect_success 'cleanup commit messages (strip,-F,-e): output' '
test_expect_success 'cleanup commit messages (strip option,-F,-e): output' '
test_i18ncmp expect actual
'
test_expect_success 'cleanup commit message (fail on invalid cleanup mode option)' '
test_must_fail git commit --cleanup=non-existent
'
test_expect_success 'cleanup commit message (fail on invalid cleanup mode configuration)' '
test_must_fail git -c commit.cleanup=non-existent commit
'
test_expect_success 'cleanup commit message (no config and no option uses default)' '
echo content >>file &&
git add file &&
test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
git commit --no-status &&
commit_msg_is "commit message"
'
test_expect_success 'cleanup commit message (option overrides default)' '
echo content >>file &&
git add file &&
test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
git commit --cleanup=whitespace --no-status &&
commit_msg_is "commit message # comment"
'
test_expect_success 'cleanup commit message (config overrides default)' '
echo content >>file &&
git add file &&
test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
git -c commit.cleanup=whitespace commit --no-status &&
commit_msg_is "commit message # comment"
'
test_expect_success 'cleanup commit message (option overrides config)' '
echo content >>file &&
git add file &&
test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
git -c commit.cleanup=whitespace commit --cleanup=default &&
commit_msg_is "commit message"
'
test_expect_success 'cleanup commit message (default, -m)' '
echo content >>file &&
git add file &&
git commit -m "message #comment " &&
commit_msg_is "message #comment"
'
test_expect_success 'cleanup commit message (whitespace option, -m)' '
echo content >>file &&
git add file &&
git commit --cleanup=whitespace --no-status -m "message #comment " &&
commit_msg_is "message #comment"
'
test_expect_success 'cleanup commit message (whitespace config, -m)' '
echo content >>file &&
git add file &&
git -c commit.cleanup=whitespace commit --no-status -m "message #comment " &&
commit_msg_is "message #comment"
'
test_expect_success 'message shows author when it is not equal to committer' '
echo >>negative &&
git commit -e -m "sample" -a &&