Merge branch 'tr/maint-format-patch-empty-output'

* tr/maint-format-patch-empty-output:
  Document negated forms of format-patch --to --cc --add-headers
  t4014: "no-add-headers" is actually called "no-add-header"
  t4014: invoke format-patch with --stdout where intended
  t4014: check for empty files from git format-patch --stdout
This commit is contained in:
Junio C Hamano
2011-09-02 13:18:22 -07:00
2 changed files with 28 additions and 4 deletions

View File

@ -166,15 +166,22 @@ will want to ensure that threading is disabled for `git send-email`.
--to=<email>:: --to=<email>::
Add a `To:` header to the email headers. This is in addition Add a `To:` header to the email headers. This is in addition
to any configured headers, and may be used multiple times. to any configured headers, and may be used multiple times.
The negated form `--no-to` discards all `To:` headers added so
far (from config or command line).
--cc=<email>:: --cc=<email>::
Add a `Cc:` header to the email headers. This is in addition Add a `Cc:` header to the email headers. This is in addition
to any configured headers, and may be used multiple times. to any configured headers, and may be used multiple times.
The negated form `--no-cc` discards all `Cc:` headers added so
far (from config or command line).
--add-header=<header>:: --add-header=<header>::
Add an arbitrary header to the email headers. This is in addition Add an arbitrary header to the email headers. This is in addition
to any configured headers, and may be used multiple times. to any configured headers, and may be used multiple times.
For example, `--add-header="Organization: git-foo"` For example, `--add-header="Organization: git-foo"`.
The negated form `--no-add-header` discards *all* (`To:`,
`Cc:`, and custom) headers added so far from config or command
line.
--cover-letter:: --cover-letter::
In addition to the patches, generate a cover letter file In addition to the patches, generate a cover letter file

View File

@ -179,12 +179,21 @@ test_expect_success 'configuration To: header' '
grep "^To: R. E. Cipient <rcipient@example.com>\$" patch9 grep "^To: R. E. Cipient <rcipient@example.com>\$" patch9
' '
# check_patch <patch>: Verify that <patch> looks like a half-sane
# patch email to avoid a false positive with !grep
check_patch () {
grep -e "^From:" "$1" &&
grep -e "^Date:" "$1" &&
grep -e "^Subject:" "$1"
}
test_expect_success '--no-to overrides config.to' ' test_expect_success '--no-to overrides config.to' '
git config --replace-all format.to \ git config --replace-all format.to \
"R. E. Cipient <rcipient@example.com>" && "R. E. Cipient <rcipient@example.com>" &&
git format-patch --no-to --stdout master..side | git format-patch --no-to --stdout master..side |
sed -e "/^\$/q" >patch10 && sed -e "/^\$/q" >patch10 &&
check_patch patch10 &&
! grep "^To: R. E. Cipient <rcipient@example.com>\$" patch10 ! grep "^To: R. E. Cipient <rcipient@example.com>\$" patch10
' '
@ -195,6 +204,7 @@ test_expect_success '--no-to and --to replaces config.to' '
git format-patch --no-to --to="Someone Else <else@out.there>" \ git format-patch --no-to --to="Someone Else <else@out.there>" \
--stdout master..side | --stdout master..side |
sed -e "/^\$/q" >patch11 && sed -e "/^\$/q" >patch11 &&
check_patch patch11 &&
! grep "^To: Someone <someone@out.there>\$" patch11 && ! grep "^To: Someone <someone@out.there>\$" patch11 &&
grep "^To: Someone Else <else@out.there>\$" patch11 grep "^To: Someone Else <else@out.there>\$" patch11
' '
@ -205,15 +215,17 @@ test_expect_success '--no-cc overrides config.cc' '
"C. E. Cipient <rcipient@example.com>" && "C. E. Cipient <rcipient@example.com>" &&
git format-patch --no-cc --stdout master..side | git format-patch --no-cc --stdout master..side |
sed -e "/^\$/q" >patch12 && sed -e "/^\$/q" >patch12 &&
check_patch patch12 &&
! grep "^Cc: C. E. Cipient <rcipient@example.com>\$" patch12 ! grep "^Cc: C. E. Cipient <rcipient@example.com>\$" patch12
' '
test_expect_success '--no-add-headers overrides config.headers' ' test_expect_success '--no-add-header overrides config.headers' '
git config --replace-all format.headers \ git config --replace-all format.headers \
"Header1: B. E. Cipient <rcipient@example.com>" && "Header1: B. E. Cipient <rcipient@example.com>" &&
git format-patch --no-add-headers --stdout master..side | git format-patch --no-add-header --stdout master..side |
sed -e "/^\$/q" >patch13 && sed -e "/^\$/q" >patch13 &&
check_patch patch13 &&
! grep "^Header1: B. E. Cipient <rcipient@example.com>\$" patch13 ! grep "^Header1: B. E. Cipient <rcipient@example.com>\$" patch13
' '
@ -480,6 +492,7 @@ test_expect_success 'cover-letter inherits diff options' '
git mv file foo && git mv file foo &&
git commit -m foo && git commit -m foo &&
git format-patch --cover-letter -1 && git format-patch --cover-letter -1 &&
check_patch 0000-cover-letter.patch &&
! grep "file => foo .* 0 *\$" 0000-cover-letter.patch && ! grep "file => foo .* 0 *\$" 0000-cover-letter.patch &&
git format-patch --cover-letter -1 -M && git format-patch --cover-letter -1 -M &&
grep "file => foo .* 0 *\$" 0000-cover-letter.patch grep "file => foo .* 0 *\$" 0000-cover-letter.patch
@ -657,6 +670,7 @@ test_expect_success 'format-patch --no-signature ignores format.signature' '
git config format.signature "config sig" && git config format.signature "config sig" &&
git format-patch --stdout --signature="my sig" --no-signature \ git format-patch --stdout --signature="my sig" --no-signature \
-1 >output && -1 >output &&
check_patch output &&
! grep "config sig" output && ! grep "config sig" output &&
! grep "my sig" output && ! grep "my sig" output &&
! grep "^-- \$" output ! grep "^-- \$" output
@ -673,17 +687,20 @@ test_expect_success 'format-patch --signature --cover-letter' '
test_expect_success 'format.signature="" supresses signatures' ' test_expect_success 'format.signature="" supresses signatures' '
git config format.signature "" && git config format.signature "" &&
git format-patch --stdout -1 >output && git format-patch --stdout -1 >output &&
check_patch output &&
! grep "^-- \$" output ! grep "^-- \$" output
' '
test_expect_success 'format-patch --no-signature supresses signatures' ' test_expect_success 'format-patch --no-signature supresses signatures' '
git config --unset-all format.signature && git config --unset-all format.signature &&
git format-patch --stdout --no-signature -1 >output && git format-patch --stdout --no-signature -1 >output &&
check_patch output &&
! grep "^-- \$" output ! grep "^-- \$" output
' '
test_expect_success 'format-patch --signature="" supresses signatures' ' test_expect_success 'format-patch --signature="" supresses signatures' '
git format-patch --signature="" -1 >output && git format-patch --stdout --signature="" -1 >output &&
check_patch output &&
! grep "^-- \$" output ! grep "^-- \$" output
' '