From: Sam Vilain <sam@vilain.net>
To: Michael J Gruber <git@drmicha.warpmail.net>
Cc: Sverre Rabbelier <srabbelier@gmail.com>,
Will Palmer <wmpalmer@gmail.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: Apology/Bug report: git-send-email sends everything on Ctrl+C
Date: Wed, 26 May 2010 21:27:15 +1200 [thread overview]
Message-ID: <4BFCE973.3000304@vilain.net> (raw)
In-Reply-To: <4BFCE6DD.4030403@drmicha.warpmail.net>
Michael J Gruber wrote:
> > > Hard to know what could have possibly stopped this from happening.
> > > PEBKAC.
> > Perhaps git can be smart and ask for confirmation for huge (>20 ?)
> > patchsets.
> to be overriden by an option "--no-villain"...
>
> Sorry, bad joke, but couldn't resist. Feel free to pick on my name ;)
I went with the simpler and pre-existing --confirm=never :-)
Subject: [PATCH] send-email: confirm for really large patch sets
It is possible to send a lot of e-mails using quite simple user errors
with git send-email; if they were not intended this could be quite a
lot of spam. Ask a final question if there are a lot of messages
before sending.
Signed-off-by: Sam Vilain <sam@vilain.net>
---
untested: after what just happens there is no way I'm testing this :-)
git-send-email.perl | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index 12622fc..093b7f2 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -257,6 +257,11 @@ Administering
Default is the value of 'sendemail.confirm' configuration value; if that
is unspecified, default to 'auto' unless any of the suppress options
have been specified, in which case default to 'compose'.
++
+If you are sending a very large patch sequence (more than 20 parts),
+you will be asked for a second final confirmation before anything is
+sent. This can be suppressed by setting this configuration value to
+'never'.
--dry-run::
Do everything except actually send the emails.
diff --git a/git-send-email.perl b/git-send-email.perl
index 111c981..2775506 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -1096,6 +1096,19 @@ $references = $initial_reply_to || '';
$subject = $initial_subject;
$message_num = 0;
+if ($needs_confirm ne "never" and @files > 20) {
+ $_ = ask(
+ "That's a big patch set - ".@files." parts. "
+ ."Are you sure you want to do this? ([y]es|[n]o): ",
+ valid_re => qr/^(?:yes|y|no|n)/i,
+ default => "n",
+ );
+ if (/^n/i) {
+ cleanup_compose_files();
+ exit(0);
+ }
+}
+
foreach my $t (@files) {
open(F,"<",$t) or die "can't open file $t";
--
1.7.1.rc2.333.gb2668
next prev parent reply other threads:[~2010-05-26 9:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-26 6:04 Apology/Bug report: git-send-email sends everything on Ctrl+C Sam Vilain
2010-05-26 6:50 ` Sam Vilain
2010-05-26 8:05 ` Will Palmer
2010-05-26 8:51 ` Sam Vilain
2010-05-26 9:07 ` Sverre Rabbelier
2010-05-26 9:16 ` Michael J Gruber
2010-05-26 9:27 ` Sam Vilain [this message]
2010-05-26 8:40 ` Michael J Gruber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BFCE973.3000304@vilain.net \
--to=sam@vilain.net \
--cc=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=srabbelier@gmail.com \
--cc=wmpalmer@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.