From: Eric Sunshine <sunshine@sunshineco.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH] send-email: detect and offer to skip backup files
Date: Tue, 12 Apr 2016 19:00:20 -0400 [thread overview]
Message-ID: <CAPig+cToB2ZLBarhtHMR3VHfE16ypRj-drdYDmVS9NmdJ4rYuw@mail.gmail.com> (raw)
In-Reply-To: <xmqqlh4io2v1.fsf@gitster.mtv.corp.google.com>
On Tue, Apr 12, 2016 at 6:53 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Diligent people save output from format-patch to files, proofread
> and edit them and then finally send the result out. If the
> resulting files are sent out with "git send-email 0*", this ends up
> sending backup files (e.g. 0001-X.patch.backup or 0001-X.patch~)
> left by their editors next to the final version. Sending them with
> "git send-email 0*.patch" (if format-patch was run with the standard
> suffix) would avoid such an embarrassment, but not everybody is
> careful.
>
> After collecting files to be sent (and sorting them if read from a
> directory), notice when the file being sent out has the same name as
> the previous file, plus some suffix (e.g. 0001-X.patch was sent, and
> we are looking at 0001-X.patch.backup or 0001-X.patch~), and the
> suffix begins with a non-alnum (e.g. ".backup" or "~") and ask if
> the user really wants to send it out. Once the user skips sending
> such a "backup" file, remember the suffix and stop asking the same
> question (e.g. after skipping 0001-X.patch~, skip 0002-Y.patch~
> without asking).
>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
> diff --git a/git-send-email.perl b/git-send-email.perl
> +sub handle_backup {
> + my ($last, $lastlen, $file, $known_suffix) = @_;
> + my ($suffix, $skip);
> +
> + $skip = 0;
> + if (defined $last &&
> + ($lastlen < length($file)) &&
> + (substr($file, 0, $lastlen) eq $last) &&
> + ($suffix = substr($file, $lastlen)) !~ /^[a-z0-9]/i) {
> + if (defined $known_suffix && $suffix eq $known_suffix) {
> + print "Skipping $file with backup suffix '$known_suffix'.\n";
> + $skip = 1;
> + } else {
> + my $answer = ask("Do you really want to send $file? (y|N): ",
> + valid_re => qr/^(?:y|n)/i,
> + default => 'y');
I still have the same question[1] as last time I reviewed this patch:
Should default be 'n', or am I misunderstanding?
[1]: http://thread.gmane.org/gmane.comp.version-control.git/289063/focus=289197
> + $skip = ($answer ne 'y');
> + if ($skip) {
> + $known_suffix = $suffix;
> + }
> + }
> + }
> + return ($skip, $known_suffix);
> +}
> +
> +sub handle_backup_files {
> + my @file = @_;
> + my ($last, $lastlen, $known_suffix, $skip, @result);
> + for my $file (@file) {
> + ($skip, $known_suffix) = handle_backup($last, $lastlen,
> + $file, $known_suffix);
> + push @result, $file unless $skip;
> + $last = $file;
> + $lastlen = length($file);
> + }
> + return @result;
> +}
> +
> sub file_has_nonascii {
> my $fn = shift;
> open(my $fh, '<', $fn)
> --
> 2.8.1-347-g322afaf
next prev parent reply other threads:[~2016-04-12 23:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-12 22:53 [PATCH] send-email: detect and offer to skip backup files Junio C Hamano
2016-04-12 23:00 ` Eric Sunshine [this message]
2016-04-13 1:36 ` Junio C Hamano
2016-04-12 23:05 ` Stefan Beller
2016-04-13 1:38 ` Junio C Hamano
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=CAPig+cToB2ZLBarhtHMR3VHfE16ypRj-drdYDmVS9NmdJ4rYuw@mail.gmail.com \
--to=sunshine@sunshineco.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).