send-email: add no-validate option

Since we are now sanity-checking the contents of patches and
refusing to send ones with long lines, this knob provides a
way for the user to override the new behavior (if, e.g., he
knows his SMTP path will handle it).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2008-01-18 09:20:10 -05:00 committed by Junio C Hamano
parent 747bbff9b9
commit c764a0c2b6
2 changed files with 19 additions and 3 deletions

View File

@ -100,6 +100,8 @@ Options:
--envelope-sender Specify the envelope sender used to send the emails. --envelope-sender Specify the envelope sender used to send the emails.
--no-validate Don't perform any sanity checks on patches.
EOT EOT
exit(1); exit(1);
} }
@ -177,6 +179,7 @@ my ($quiet, $dry_run) = (0, 0);
my ($thread, $chain_reply_to, $suppress_from, $signed_off_cc, $cc_cmd); my ($thread, $chain_reply_to, $suppress_from, $signed_off_cc, $cc_cmd);
my ($smtp_server, $smtp_server_port, $smtp_authuser, $smtp_authpass, $smtp_ssl); my ($smtp_server, $smtp_server_port, $smtp_authuser, $smtp_authpass, $smtp_ssl);
my ($identity, $aliasfiletype, @alias_files, @smtp_host_parts); my ($identity, $aliasfiletype, @alias_files, @smtp_host_parts);
my ($no_validate);
my %config_bool_settings = ( my %config_bool_settings = (
"thread" => [\$thread, 1], "thread" => [\$thread, 1],
@ -222,6 +225,7 @@ my $rc = GetOptions("sender|from=s" => \$sender,
"dry-run" => \$dry_run, "dry-run" => \$dry_run,
"envelope-sender=s" => \$envelope_sender, "envelope-sender=s" => \$envelope_sender,
"thread!" => \$thread, "thread!" => \$thread,
"no-validate" => \$no_validate,
); );
unless ($rc) { unless ($rc) {
@ -332,9 +336,11 @@ for my $f (@ARGV) {
} }
} }
foreach my $f (@files) { if (!$no_validate) {
my $error = validate_patch($f); foreach my $f (@files) {
$error and die "fatal: $f: $error\nwarning: no patches were sent\n"; my $error = validate_patch($f);
$error and die "fatal: $f: $error\nwarning: no patches were sent\n";
}
} }
if (@files) { if (@files) {

View File

@ -98,4 +98,14 @@ test_expect_success 'no patch was sent' '
! test -e commandline ! test -e commandline
' '
test_expect_success 'allow long lines with --no-validate' '
git send-email \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
--smtp-server="$(pwd)/fake.sendmail" \
--no-validate \
$patches longline.patch \
2>errors
'
test_done test_done