mirror of
https://github.com/git/git.git
synced 2024-11-28 04:23:30 +08:00
Merge branch 'pb/send-email-cccmd-fix'
* pb/send-email-cccmd-fix: Test cccmd in t9001-send-email.sh and fix some bugs
This commit is contained in:
commit
451316d9bd
@ -193,12 +193,12 @@ Automating
|
|||||||
- 'self' will avoid including the sender
|
- 'self' will avoid including the sender
|
||||||
- 'cc' will avoid including anyone mentioned in Cc lines in the patch header
|
- 'cc' will avoid including anyone mentioned in Cc lines in the patch header
|
||||||
except for self (use 'self' for that).
|
except for self (use 'self' for that).
|
||||||
- 'ccbody' will avoid including anyone mentioned in Cc lines in the
|
- 'bodycc' will avoid including anyone mentioned in Cc lines in the
|
||||||
patch body (commit message) except for self (use 'self' for that).
|
patch body (commit message) except for self (use 'self' for that).
|
||||||
- 'sob' will avoid including anyone mentioned in Signed-off-by lines except
|
- 'sob' will avoid including anyone mentioned in Signed-off-by lines except
|
||||||
for self (use 'self' for that).
|
for self (use 'self' for that).
|
||||||
- 'cccmd' will avoid running the --cc-cmd.
|
- 'cccmd' will avoid running the --cc-cmd.
|
||||||
- 'body' is equivalent to 'sob' + 'ccbody'
|
- 'body' is equivalent to 'sob' + 'bodycc'
|
||||||
- 'all' will suppress all auto cc values.
|
- 'all' will suppress all auto cc values.
|
||||||
--
|
--
|
||||||
+
|
+
|
||||||
|
@ -1299,7 +1299,7 @@ _git_rebase ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
__git_send_email_confirm_options="always never auto cc compose"
|
__git_send_email_confirm_options="always never auto cc compose"
|
||||||
__git_send_email_suppresscc_options="author self cc ccbody sob cccmd body all"
|
__git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
|
||||||
|
|
||||||
_git_send_email ()
|
_git_send_email ()
|
||||||
{
|
{
|
||||||
|
@ -334,7 +334,7 @@ if (@suppress_cc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($suppress_cc{'all'}) {
|
if ($suppress_cc{'all'}) {
|
||||||
foreach my $entry (qw (ccmd cc author self sob body bodycc)) {
|
foreach my $entry (qw (cccmd cc author self sob body bodycc)) {
|
||||||
$suppress_cc{$entry} = 1;
|
$suppress_cc{$entry} = 1;
|
||||||
}
|
}
|
||||||
delete $suppress_cc{'all'};
|
delete $suppress_cc{'all'};
|
||||||
@ -1104,7 +1104,7 @@ foreach my $t (@files) {
|
|||||||
close F;
|
close F;
|
||||||
|
|
||||||
if (defined $cc_cmd && !$suppress_cc{'cccmd'}) {
|
if (defined $cc_cmd && !$suppress_cc{'cccmd'}) {
|
||||||
open(F, "$cc_cmd $t |")
|
open(F, "$cc_cmd \Q$t\E |")
|
||||||
or die "(cc-cmd) Could not execute '$cc_cmd'";
|
or die "(cc-cmd) Could not execute '$cc_cmd'";
|
||||||
while(<F>) {
|
while(<F>) {
|
||||||
my $c = $_;
|
my $c = $_;
|
||||||
|
@ -148,6 +148,22 @@ test_expect_success 'Prompting works' '
|
|||||||
grep "^To: to@example.com$" msgtxt1
|
grep "^To: to@example.com$" msgtxt1
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'cccmd works' '
|
||||||
|
clean_fake_sendmail &&
|
||||||
|
cp $patches cccmd.patch &&
|
||||||
|
echo cccmd--cccmd@example.com >>cccmd.patch &&
|
||||||
|
echo sed -n s/^cccmd--//p \"\$1\" > cccmd-sed &&
|
||||||
|
chmod +x cccmd-sed &&
|
||||||
|
git send-email \
|
||||||
|
--from="Example <nobody@example.com>" \
|
||||||
|
--to=nobody@example.com \
|
||||||
|
--cc-cmd=./cccmd-sed \
|
||||||
|
--smtp-server="$(pwd)/fake.sendmail" \
|
||||||
|
cccmd.patch \
|
||||||
|
&&
|
||||||
|
grep ^Cc:.*cccmd@example.com msgtxt1
|
||||||
|
'
|
||||||
|
|
||||||
z8=zzzzzzzz
|
z8=zzzzzzzz
|
||||||
z64=$z8$z8$z8$z8$z8$z8$z8$z8
|
z64=$z8$z8$z8$z8$z8$z8$z8$z8
|
||||||
z512=$z64$z64$z64$z64$z64$z64$z64$z64
|
z512=$z64$z64$z64$z64$z64$z64$z64$z64
|
||||||
@ -274,7 +290,7 @@ EOF
|
|||||||
test_suppression () {
|
test_suppression () {
|
||||||
git send-email \
|
git send-email \
|
||||||
--dry-run \
|
--dry-run \
|
||||||
--suppress-cc=$1 \
|
--suppress-cc=$1 ${2+"--suppress-cc=$2"} \
|
||||||
--from="Example <from@example.com>" \
|
--from="Example <from@example.com>" \
|
||||||
--to=to@example.com \
|
--to=to@example.com \
|
||||||
--smtp-server relay.example.com \
|
--smtp-server relay.example.com \
|
||||||
@ -282,8 +298,8 @@ test_suppression () {
|
|||||||
sed -e "s/^\(Date:\).*/\1 DATE-STRING/" \
|
sed -e "s/^\(Date:\).*/\1 DATE-STRING/" \
|
||||||
-e "s/^\(Message-Id:\).*/\1 MESSAGE-ID-STRING/" \
|
-e "s/^\(Message-Id:\).*/\1 MESSAGE-ID-STRING/" \
|
||||||
-e "s/^\(X-Mailer:\).*/\1 X-MAILER-STRING/" \
|
-e "s/^\(X-Mailer:\).*/\1 X-MAILER-STRING/" \
|
||||||
>actual-suppress-$1 &&
|
>actual-suppress-$1${2+"-$2"} &&
|
||||||
test_cmp expected-suppress-$1 actual-suppress-$1
|
test_cmp expected-suppress-$1${2+"-$2"} actual-suppress-$1${2+"-$2"}
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'sendemail.cc set' '
|
test_expect_success 'sendemail.cc set' '
|
||||||
@ -316,6 +332,34 @@ test_expect_success 'sendemail.cc unset' '
|
|||||||
test_suppression sob
|
test_suppression sob
|
||||||
'
|
'
|
||||||
|
|
||||||
|
cat >expected-suppress-cccmd <<\EOF
|
||||||
|
0001-Second.patch
|
||||||
|
(mbox) Adding cc: A <author@example.com> from line 'From: A <author@example.com>'
|
||||||
|
(mbox) Adding cc: One <one@example.com> from line 'Cc: One <one@example.com>, two@example.com'
|
||||||
|
(mbox) Adding cc: two@example.com from line 'Cc: One <one@example.com>, two@example.com'
|
||||||
|
(body) Adding cc: C O Mitter <committer@example.com> from line 'Signed-off-by: C O Mitter <committer@example.com>'
|
||||||
|
Dry-OK. Log says:
|
||||||
|
Server: relay.example.com
|
||||||
|
MAIL FROM:<from@example.com>
|
||||||
|
RCPT TO:<to@example.com>,<author@example.com>,<one@example.com>,<two@example.com>,<committer@example.com>
|
||||||
|
From: Example <from@example.com>
|
||||||
|
To: to@example.com
|
||||||
|
Cc: A <author@example.com>, One <one@example.com>, two@example.com, C O Mitter <committer@example.com>
|
||||||
|
Subject: [PATCH 1/1] Second.
|
||||||
|
Date: DATE-STRING
|
||||||
|
Message-Id: MESSAGE-ID-STRING
|
||||||
|
X-Mailer: X-MAILER-STRING
|
||||||
|
|
||||||
|
Result: OK
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_expect_success 'sendemail.cccmd' '
|
||||||
|
echo echo cc-cmd@example.com > cccmd &&
|
||||||
|
chmod +x cccmd &&
|
||||||
|
git config sendemail.cccmd ./cccmd &&
|
||||||
|
test_suppression cccmd
|
||||||
|
'
|
||||||
|
|
||||||
cat >expected-suppress-all <<\EOF
|
cat >expected-suppress-all <<\EOF
|
||||||
0001-Second.patch
|
0001-Second.patch
|
||||||
Dry-OK. Log says:
|
Dry-OK. Log says:
|
||||||
@ -341,6 +385,31 @@ cat >expected-suppress-body <<\EOF
|
|||||||
(mbox) Adding cc: A <author@example.com> from line 'From: A <author@example.com>'
|
(mbox) Adding cc: A <author@example.com> from line 'From: A <author@example.com>'
|
||||||
(mbox) Adding cc: One <one@example.com> from line 'Cc: One <one@example.com>, two@example.com'
|
(mbox) Adding cc: One <one@example.com> from line 'Cc: One <one@example.com>, two@example.com'
|
||||||
(mbox) Adding cc: two@example.com from line 'Cc: One <one@example.com>, two@example.com'
|
(mbox) Adding cc: two@example.com from line 'Cc: One <one@example.com>, two@example.com'
|
||||||
|
(cc-cmd) Adding cc: cc-cmd@example.com from: './cccmd'
|
||||||
|
Dry-OK. Log says:
|
||||||
|
Server: relay.example.com
|
||||||
|
MAIL FROM:<from@example.com>
|
||||||
|
RCPT TO:<to@example.com>,<author@example.com>,<one@example.com>,<two@example.com>,<cc-cmd@example.com>
|
||||||
|
From: Example <from@example.com>
|
||||||
|
To: to@example.com
|
||||||
|
Cc: A <author@example.com>, One <one@example.com>, two@example.com, cc-cmd@example.com
|
||||||
|
Subject: [PATCH 1/1] Second.
|
||||||
|
Date: DATE-STRING
|
||||||
|
Message-Id: MESSAGE-ID-STRING
|
||||||
|
X-Mailer: X-MAILER-STRING
|
||||||
|
|
||||||
|
Result: OK
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_expect_success '--suppress-cc=body' '
|
||||||
|
test_suppression body
|
||||||
|
'
|
||||||
|
|
||||||
|
cat >expected-suppress-body-cccmd <<\EOF
|
||||||
|
0001-Second.patch
|
||||||
|
(mbox) Adding cc: A <author@example.com> from line 'From: A <author@example.com>'
|
||||||
|
(mbox) Adding cc: One <one@example.com> from line 'Cc: One <one@example.com>, two@example.com'
|
||||||
|
(mbox) Adding cc: two@example.com from line 'Cc: One <one@example.com>, two@example.com'
|
||||||
Dry-OK. Log says:
|
Dry-OK. Log says:
|
||||||
Server: relay.example.com
|
Server: relay.example.com
|
||||||
MAIL FROM:<from@example.com>
|
MAIL FROM:<from@example.com>
|
||||||
@ -356,8 +425,8 @@ X-Mailer: X-MAILER-STRING
|
|||||||
Result: OK
|
Result: OK
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success '--suppress-cc=body' '
|
test_expect_success '--suppress-cc=body --suppress-cc=cccmd' '
|
||||||
test_suppression body
|
test_suppression body cccmd
|
||||||
'
|
'
|
||||||
|
|
||||||
cat >expected-suppress-sob <<\EOF
|
cat >expected-suppress-sob <<\EOF
|
||||||
@ -381,6 +450,7 @@ Result: OK
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success '--suppress-cc=sob' '
|
test_expect_success '--suppress-cc=sob' '
|
||||||
|
git config --unset sendemail.cccmd
|
||||||
test_suppression sob
|
test_suppression sob
|
||||||
'
|
'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user