send-email: add no-validate option
authorJeff King <peff@peff.net>
Fri, 18 Jan 2008 14:20:10 +0000 (09:20 -0500)
committerJunio C Hamano <gitster@pobox.com>
Fri, 18 Jan 2008 21:33:57 +0000 (13:33 -0800)
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>
git-send-email.perl
t/t9001-send-email.sh

index 4e62c3f0e77387c0c8b2b24a9e4abd79fd18f7f4..6c72952fcc09934a4e710be733b4926a9e5a2658 100755 (executable)
@@ -100,6 +100,8 @@ Options:
 
    --envelope-sender   Specify the envelope sender used to send the emails.
 
+   --no-validate       Don't perform any sanity checks on patches.
+
 EOT
        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 ($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],
@@ -222,6 +225,7 @@ my $rc = GetOptions("sender|from=s" => \$sender,
                    "dry-run" => \$dry_run,
                    "envelope-sender=s" => \$envelope_sender,
                    "thread!" => \$thread,
+                   "no-validate" => \$no_validate,
         );
 
 unless ($rc) {
@@ -332,9 +336,11 @@ for my $f (@ARGV) {
        }
 }
 
-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) {
index 1c4181022fdf59b49b4aed4be81230897d09b685..4f6822f2c5d717edd20cb97e49fad3017d34897e 100755 (executable)
@@ -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