Re: patch submission process, was Re: [PATCH v6 06/16] merge_recursive: abort properly upon errors
- From
Jeff King <peff@peff.net>
- Date
- Aug 9, 2016, 18:58 UTC
- Message-ID
- <20160809185809.qyh2gwabxgotvvgk@sigill.intra.peff.net>
- In-Reply-To
- <CAGZ79kZ=kNCq3uM5WGdmZRfPGaT1ZUqa2WkQdq5C2inF154sew@mail.gmail.com>
On Tue, Aug 09, 2016 at 11:50:51AM -0700, Stefan Beller wrote:
Show 11 quoted lines
> > Could you share your mutt set up pleaaase? I've been wanting this for > > a long time, but never used mutt long enough to bother with a proper > > setup like this (I blame gmail). > > > That is my complaint^H^H^H^H position, too. > I always wanted to switch to a more powerful > setup than git-send-email for sending /gmail for reading, > but I could not convince myself the steep learning/setup curve > is worth it eventually as it is "not broken enough" to do the change > right now.
I think I may have shared it before, but here is the script I use to send emails. It dumps you in mutt, and then I have:
macro index,pager b ":set edit_headers=yes<enter><resend-message>:set edit_headers=no<enter>"
to send the message ("b" is for "bounce", which I think may be another Pine-ism).
-- >8 -- #!/bin/sh
upstream_branch() {
current=`git symbolic-ref HEAD`
upstream=`git for-each-ref --format='%(upstream)' "$current"`
if test -n "$upstream"; then
echo $upstream
else
echo origin
fi
}get_reply_headers() {
perl -ne '
if (defined $opt) {
if (/^\s+(.*)/) {
$val .= " $1";
next;
}
print "--$opt=", quotemeta($val), " ";
$opt = $val = undef;
}
if (/^(cc|to):\s*(.*)/i) {
$opt = lc($1);
$val = $2;
}
elsif (/^message-id:\s*(.*)/i) {
$opt = "in-reply-to";
$val = $1;
}
elsif (/^subject:\s*\[PATCH v(\d+)/i) {
print "-v$1 ";
}
elsif (/^$/) {
last;
}
'
}has_nonoption=
for i in "$@"; do
case "$i" in
-[0-9]) has_nonoption=yes ;;
-*) ;;
*) has_nonoption=yes
esac
donegit rev-parse || exit 1
: ${REPLY:=$HOME/patch} test -e "$REPLY" && eval "set -- `get_reply_headers <\"$REPLY\"` \"\$@\"" test "$has_nonoption" = "yes" || set -- "$@" `upstream_branch`
git format-patch -s --stdout --from "$@" >.mbox
if test -t 1; then
mutt -e 'set sort=mailbox-order' -f .mbox
else
perl -lne '
if (/^Subject: (.*)/) {
$subject = $1;
}
elsif ($subject && /^\s+(.*)/) {
$subject .= " $1";
}
elsif ($subject) {
print $subject;
$subject = undef;
}
' .mbox |
sed -e 's/\[PATCH /[/' \
-e 's/]/]:/' \
-e 's/^/ /'
fi
rm -f .mbox