threads / patch / 40550

patchsend-email: allow to compose only prepared cover letter

Subject: [PATCH 1/1] send-email: allow to compose only prepared cover letter

## tl;dr

3 messages between Oct 13, 2015 and Oct 14, 2015. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Andy Shevchenko· Oct 13, 2015, 16:12 UTC · lore

Since @rev_list_opts contains everything that goes to the git format-patch including an additional option like '--cover-letter' we might be interested to compose it before send.

My often use case is to do:
	% git format-patch --cover-letter --subject-prefix="PATCH vN" rev1^..revXYZ
	% $GIT_EDITOR 0000-*
	% git send-email 00* # assumes series less than 100 patches
	% rm -f 00*
Since git-send-email may send directly from repository it would be nice to
reduce above to just
	% git send-email --compose --cover-letter --subject-prefix="PATCH vN" rev1^..revXYZ

P.S. Going further we can even introduce something like --valid-cmd to send-email to run, for example, checkpatch.pl.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 git-send-email.perl | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Show changes to git-send-email.perl +4 −1
diff --git a/git-send-email.perl b/git-send-email.perl
index e3ff44b..fc62d28 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -631,7 +631,10 @@ sub get_patch_subject {
 	die "No subject line in $fn ?";
 }
 
-if ($compose) {
+if ($compose and @rev_list_opts and grep { $_ eq '--cover-letter' } @rev_list_opts) {
+	# Cover letter always goes first
+	do_edit($files[0]);
+} elsif ($compose) {
 	# Note that this does not need to be secure, but we will make a small
 	# effort to have it be unique
 	$compose_filename = ($repo ?
-- 
2.5.3
Junio C Hamano· Oct 13, 2015, 21:11 UTC · re: Andy Shevchenko · lore

Re: [PATCH 1/1] send-email: allow to compose only prepared cover letter

Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
Show 5 quoted lines
> My often use case is to do:
> 	% git format-patch --cover-letter --subject-prefix="PATCH vN" rev1^..revXYZ
> 	% $GIT_EDITOR 0000-*
> 	% git send-email 00* # assumes series less than 100 patches
> 	% rm -f 00*

I guess this patch would not hurt too much, but the above would vastly be improved if you used "-vN" option, instead of the hand-rolled subject prefix, and dropped the last "rm -f" (which in turn would mean you would want to use -o option to specify where to keep the older iterations of the topic). Then you can easily refer to cover letters and patches from previous rounds while preparing the latest to send out.

Andy Shevchenko· Oct 14, 2015, 09:42 UTC · re: Junio C Hamano · lore

Re: [PATCH 1/1] send-email: allow to compose only prepared cover letter

On Tue, 2015-10-13 at 14:11 -0700, Junio C Hamano wrote:
Show 17 quoted lines
> Andy Shevchenko <andriy.shevchenko@linux.intel.com> writes:
> 
> > My often use case is to do:
> > 	% git format-patch --cover-letter --subject-prefix="PATCH 
> > vN" rev1^..revXYZ
> > 	% $GIT_EDITOR 0000-*
> > 	% git send-email 00* # assumes series less than 100 
> > patches
> > 	% rm -f 00*
> 
> I guess this patch would not hurt too much, but the above would
> vastly be improved if you used "-vN" option, instead of the
> hand-rolled subject prefix, and dropped the last "rm -f" (which in
> turn would mean you would want to use -o option to specify where to
> keep the older iterations of the topic).  Then you can easily refer
> to cover letters and patches from previous rounds while preparing
> the latest to send out.
Thanks!

The patch I sent was a modification of previous variant I have. It unfortunately misses undef $compose; line in the first conditional branch.

Besides that I found that --annotate might be a workaround and it comes a burden of editor how to avoid editing every patch but first.

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

← back to recent threads