зеркало из https://github.com/microsoft/git.git
Merge branch 'mt/send-email-cover-to-cc'
* mt/send-email-cover-to-cc: t9001: avoid non-portable '\n' with sed test/send-email: to-cover, cc-cover tests git-send-email: two new options: to-cover, cc-cover
This commit is contained in:
Коммит
9fe49ae7d7
|
@ -248,6 +248,18 @@ Automating
|
|||
cc list. Default is the value of 'sendemail.signedoffbycc' configuration
|
||||
value; if that is unspecified, default to --signed-off-by-cc.
|
||||
|
||||
--[no-]cc-cover::
|
||||
If this is set, emails found in Cc: headers in the first patch of
|
||||
the series (typically the cover letter) are added to the cc list
|
||||
for each email set. Default is the value of 'sendemail.cccover'
|
||||
configuration value; if that is unspecified, default to --no-cc-cover.
|
||||
|
||||
--[no-]to-cover::
|
||||
If this is set, emails found in To: headers in the first patch of
|
||||
the series (typically the cover letter) are added to the to list
|
||||
for each email set. Default is the value of 'sendemail.tocover'
|
||||
configuration value; if that is unspecified, default to --no-to-cover.
|
||||
|
||||
--suppress-cc=<category>::
|
||||
Specify an additional category of recipients to suppress the
|
||||
auto-cc of:
|
||||
|
|
|
@ -80,6 +80,8 @@ git send-email [options] <file | directory | rev-list options >
|
|||
--to-cmd <str> * Email To: via `<str> \$patch_path`
|
||||
--cc-cmd <str> * Email Cc: via `<str> \$patch_path`
|
||||
--suppress-cc <str> * author, self, sob, cc, cccmd, body, bodycc, all.
|
||||
--[no-]cc-cover * Email Cc: addresses in the cover letter.
|
||||
--[no-]to-cover * Email To: addresses in the cover letter.
|
||||
--[no-]signed-off-by-cc * Send to Signed-off-by: addresses. Default on.
|
||||
--[no-]suppress-from * Send to self. Default off.
|
||||
--[no-]chain-reply-to * Chain In-Reply-To: fields. Default off.
|
||||
|
@ -195,6 +197,7 @@ sub do_edit {
|
|||
|
||||
# Variables with corresponding config settings
|
||||
my ($thread, $chain_reply_to, $suppress_from, $signed_off_by_cc);
|
||||
my ($cover_cc, $cover_to);
|
||||
my ($to_cmd, $cc_cmd);
|
||||
my ($smtp_server, $smtp_server_port, @smtp_server_options);
|
||||
my ($smtp_authuser, $smtp_encryption, $smtp_ssl_cert_path);
|
||||
|
@ -211,6 +214,8 @@ my %config_bool_settings = (
|
|||
"chainreplyto" => [\$chain_reply_to, 0],
|
||||
"suppressfrom" => [\$suppress_from, undef],
|
||||
"signedoffbycc" => [\$signed_off_by_cc, undef],
|
||||
"cccover" => [\$cover_cc, undef],
|
||||
"tocover" => [\$cover_to, undef],
|
||||
"signedoffcc" => [\$signed_off_by_cc, undef], # Deprecated
|
||||
"validate" => [\$validate, 1],
|
||||
"multiedit" => [\$multiedit, undef],
|
||||
|
@ -302,6 +307,8 @@ my $rc = GetOptions("h" => \$help,
|
|||
"suppress-from!" => \$suppress_from,
|
||||
"suppress-cc=s" => \@suppress_cc,
|
||||
"signed-off-cc|signed-off-by-cc!" => \$signed_off_by_cc,
|
||||
"cc-cover|cc-cover!" => \$cover_cc,
|
||||
"to-cover|to-cover!" => \$cover_to,
|
||||
"confirm=s" => \$confirm,
|
||||
"dry-run" => \$dry_run,
|
||||
"envelope-sender=s" => \$envelope_sender,
|
||||
|
@ -1481,6 +1488,15 @@ foreach my $t (@files) {
|
|||
@to = (@initial_to, @to);
|
||||
@cc = (@initial_cc, @cc);
|
||||
|
||||
if ($message_num == 1) {
|
||||
if (defined $cover_cc and $cover_cc) {
|
||||
@initial_cc = @cc;
|
||||
}
|
||||
if (defined $cover_to and $cover_to) {
|
||||
@initial_to = @to;
|
||||
}
|
||||
}
|
||||
|
||||
my $message_was_sent = send_message();
|
||||
|
||||
# set up for the next message
|
||||
|
|
|
@ -1334,6 +1334,51 @@ test_expect_success $PREREQ '--force sends cover letter template anyway' '
|
|||
test -n "$(ls msgtxt*)"
|
||||
'
|
||||
|
||||
test_cover_addresses () {
|
||||
header="$1"
|
||||
shift
|
||||
clean_fake_sendmail &&
|
||||
rm -fr outdir &&
|
||||
git format-patch --cover-letter -2 -o outdir &&
|
||||
cover=`echo outdir/0000-*.patch` &&
|
||||
mv $cover cover-to-edit.patch &&
|
||||
perl -pe "s/^From:/$header: extra\@address.com\nFrom:/" cover-to-edit.patch >"$cover" &&
|
||||
git send-email \
|
||||
--force \
|
||||
--from="Example <nobody@example.com>" \
|
||||
--no-to --no-cc \
|
||||
"$@" \
|
||||
--smtp-server="$(pwd)/fake.sendmail" \
|
||||
outdir/0000-*.patch \
|
||||
outdir/0001-*.patch \
|
||||
outdir/0002-*.patch \
|
||||
2>errors >out &&
|
||||
grep "^$header: extra@address.com" msgtxt1 >to1 &&
|
||||
grep "^$header: extra@address.com" msgtxt2 >to2 &&
|
||||
grep "^$header: extra@address.com" msgtxt3 >to3 &&
|
||||
test_line_count = 1 to1 &&
|
||||
test_line_count = 1 to2 &&
|
||||
test_line_count = 1 to3
|
||||
}
|
||||
|
||||
test_expect_success $PREREQ 'to-cover adds To to all mail' '
|
||||
test_cover_addresses "To" --to-cover
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'cc-cover adds Cc to all mail' '
|
||||
test_cover_addresses "Cc" --cc-cover
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'tocover adds To to all mail' '
|
||||
test_config sendemail.tocover true &&
|
||||
test_cover_addresses "To"
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'cccover adds Cc to all mail' '
|
||||
test_config sendemail.cccover true &&
|
||||
test_cover_addresses "Cc"
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'sendemail.aliasfiletype=mailrc' '
|
||||
clean_fake_sendmail &&
|
||||
echo "alias sbd somebody@example.org" >.mailrc &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче