Skip to content

Commit

Permalink
send-email: add no-validate option
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Jan 18, 2008
1 parent 747bbff commit c764a0c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
12 changes: 9 additions & 3 deletions git-send-email.perl
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ sub usage {
--envelope-sender Specify the envelope sender used to send the emails.
--no-validate Don't perform any sanity checks on patches.
EOT
exit(1);
}
Expand Down Expand Up @@ -177,6 +179,7 @@ sub format_2822_time {
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 ($identity, $aliasfiletype, @alias_files, @smtp_host_parts);
my ($no_validate);

my %config_bool_settings = (
"thread" => [\$thread, 1],
Expand Down Expand Up @@ -222,6 +225,7 @@ sub format_2822_time {
"dry-run" => \$dry_run,
"envelope-sender=s" => \$envelope_sender,
"thread!" => \$thread,
"no-validate" => \$no_validate,
);

unless ($rc) {
Expand Down Expand Up @@ -332,9 +336,11 @@ sub read_config {
}
}

foreach my $f (@files) {
my $error = validate_patch($f);
$error and die "fatal: $f: $error\nwarning: no patches were sent\n";
if (!$no_validate) {
foreach my $f (@files) {
my $error = validate_patch($f);
$error and die "fatal: $f: $error\nwarning: no patches were sent\n";
}
}

if (@files) {
Expand Down
10 changes: 10 additions & 0 deletions t/t9001-send-email.sh
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,14 @@ test_expect_success 'no patch was sent' '
! 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

0 comments on commit c764a0c

Please sign in to comment.