Re: [PATCH 2/2] send-email: add series-cc-cmd option

2012-11-12 Thread Joe Perches
On Tue, 2012-11-13 at 03:21 +0530, Ramkumar Ramachandra wrote:
 Felipe Contreras wrote:
  cc-cmd is only per-file, and many times receipients get lost without
  seing the full patch series.
 
 s/seing/seeing
 
  [...]
 
 Looks good otherwise.

s/receipients/recipients/ too

Practically this is ok but I think it's unnecessary.

Output from git format-patch is always in a single
directory.

My work flow is to use a script for --to and --cc
lines that can be set to emit the same addresses for
all files in a patch series or generate different
addresses per patch file.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] send-email: add series-cc-cmd option

2012-11-12 Thread Felipe Contreras
On Mon, Nov 12, 2012 at 11:52 PM, Joe Perches j...@perches.com wrote:
 On Tue, 2012-11-13 at 03:21 +0530, Ramkumar Ramachandra wrote:
 Felipe Contreras wrote:
  cc-cmd is only per-file, and many times receipients get lost without
  seing the full patch series.

 s/seing/seeing

  [...]

 Looks good otherwise.

 s/receipients/recipients/ too

 Practically this is ok but I think it's unnecessary.

 Output from git format-patch is always in a single
 directory.

A temporary directory.

 My work flow is to use a script for --to and --cc
 lines that can be set to emit the same addresses for
 all files in a patch series or generate different
 addresses per patch file.

For --to-cmd and --cc-cmd? So basically you check the dirname of the
argument passed?

While that works, it means you have to run the same command multiple
times, one for each mail.

If the command is using something expensive such as 'git blame' and
you have many patches, this is particularly bad. Also, it's not
elegant :)

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] send-email: add series-cc-cmd option

2012-11-12 Thread Joe Perches
On Tue, 2012-11-13 at 00:03 +0100, Felipe Contreras wrote:
 On Mon, Nov 12, 2012 at 11:52 PM, Joe Perches j...@perches.com wrote:
  On Tue, 2012-11-13 at 03:21 +0530, Ramkumar Ramachandra wrote:
  Felipe Contreras wrote:
   cc-cmd is only per-file, and many times receipients get lost without
   seing the full patch series.
 
  s/seing/seeing
 
   [...]
 
  Looks good otherwise.
 
  s/receipients/recipients/ too
 
  Practically this is ok but I think it's unnecessary.
 
  Output from git format-patch is always in a single
  directory.
 
 A temporary directory.
 
  My work flow is to use a script for --to and --cc
  lines that can be set to emit the same addresses for
  all files in a patch series or generate different
  addresses per patch file.
 
 For --to-cmd and --cc-cmd? So basically you check the dirname of the
 argument passed?

yes. basename and dirname

 While that works, it means you have to run the same command multiple
 times, one for each mail.

Shrug.  it's not a generally significant cost.
The script could also output the addresses to yet another file.

 If the command is using something expensive such as 'git blame' and
 you have many patches, this is particularly bad. Also, it's not
 elegant :)

Elegant is a beholder viewpoint.

cheers, Joe

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] send-email: add series-cc-cmd option

2012-11-12 Thread Felipe Contreras
On Tue, Nov 13, 2012 at 12:13 AM, Joe Perches j...@perches.com wrote:
 On Tue, 2012-11-13 at 00:03 +0100, Felipe Contreras wrote:
 On Mon, Nov 12, 2012 at 11:52 PM, Joe Perches j...@perches.com wrote:
  On Tue, 2012-11-13 at 03:21 +0530, Ramkumar Ramachandra wrote:
  Felipe Contreras wrote:
   cc-cmd is only per-file, and many times receipients get lost without
   seing the full patch series.
 
  s/seing/seeing
 
   [...]
 
  Looks good otherwise.
 
  s/receipients/recipients/ too
 
  Practically this is ok but I think it's unnecessary.
 
  Output from git format-patch is always in a single
  directory.

 A temporary directory.

  My work flow is to use a script for --to and --cc
  lines that can be set to emit the same addresses for
  all files in a patch series or generate different
  addresses per patch file.

 For --to-cmd and --cc-cmd? So basically you check the dirname of the
 argument passed?

 yes. basename and dirname

Well, the basename is irrelevant, because you don't care witch
particular patch is being sent, you are going to process all of them
every time.

 While that works, it means you have to run the same command multiple
 times, one for each mail.

 Shrug.  it's not a generally significant cost.

It is when you use 'git blame' and there's a lot of history:

% time git cc-cmd -1 1266686
Peter Krefting pe...@softwolves.pp.se
junio
Tran Ngoc Quan vnwild...@gmail.com
Jiang Xin worldhello@gmail.com
git cc-cmd -1 1266686  0.23s user 0.16s system 1% cpu 19.991 total

 The script could also output the addresses to yet another file.

Which would be even more hacky.

 If the command is using something expensive such as 'git blame' and
 you have many patches, this is particularly bad. Also, it's not
 elegant :)

 Elegant is a beholder viewpoint.

You think a solution that runs the same instructions multiple times
unnecessarily is elegant? All right.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] send-email: add series-cc-cmd option

2012-11-12 Thread Joe Perches
On Tue, 2012-11-13 at 00:37 +0100, Felipe Contreras wrote:
 On Tue, Nov 13, 2012 at 12:13 AM, Joe Perches j...@perches.com wrote:
  On Tue, 2012-11-13 at 00:03 +0100, Felipe Contreras wrote:
[]
  For --to-cmd and --cc-cmd? So basically you check the dirname of the
  argument passed?
 
  yes. basename and dirname
 
 Well, the basename is irrelevant, because you don't care witch
 particular patch is being sent, you are going to process all of them
 every time.

Well, I do different actions on cover letter patches
than other patches because for patch sets that touch
lots of files, the cc list can be _very_ long and
that can run afoul of other issues like maximum
recipient counts for various mailing lists.

cheers, Joe

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] send-email: add series-cc-cmd option

2012-11-12 Thread Junio C Hamano
Joe Perches j...@perches.com writes:

 On Tue, 2012-11-13 at 03:21 +0530, Ramkumar Ramachandra wrote:
 Felipe Contreras wrote:
  cc-cmd is only per-file, and many times receipients get lost without
  seing the full patch series.
 
 s/seing/seeing
 
  [...]
 
 Looks good otherwise.

 s/receipients/recipients/ too

 Practically this is ok but I think it's unnecessary.

 Output from git format-patch is always in a single
 directory.

Sorry, but I do not see how the usefulness (or necessity) of this
new option is connected to the fact that you can tell the command to
write the patches into a single (possibly new) directory.  Care to
explain?

 My work flow is to use a script for --to and --cc
 lines that can be set to emit the same addresses for
 all files in a patch series or generate different
 addresses per patch file.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] send-email: add series-cc-cmd option

2012-11-12 Thread Felipe Contreras
On Tue, Nov 13, 2012 at 1:37 AM, Junio C Hamano gits...@pobox.com wrote:
 Joe Perches j...@perches.com writes:

 On Tue, 2012-11-13 at 03:21 +0530, Ramkumar Ramachandra wrote:
 Felipe Contreras wrote:
  cc-cmd is only per-file, and many times receipients get lost without
  seing the full patch series.

 s/seing/seeing

  [...]

 Looks good otherwise.

 s/receipients/recipients/ too

 Practically this is ok but I think it's unnecessary.

 Output from git format-patch is always in a single
 directory.

 Sorry, but I do not see how the usefulness (or necessity) of this
 new option is connected to the fact that you can tell the command to
 write the patches into a single (possibly new) directory.  Care to
 explain?

Basically 'git send-email' would do something like this:
git format-patch -10 -o /tmp
for x in /tmp/*; do cc_cmd $x; done

And the cc-cmd would do something like:
cc_cmd() { do_stuff_with $(dirname $1)/*.patch }

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] send-email: add series-cc-cmd option

2012-11-11 Thread Felipe Contreras
cc-cmd is only per-file, and many times receipients get lost without
seing the full patch series.

So, add an option for series-cc-cmd, which receives as an argument
rev-list options, just like format-patch.

Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
---
 Documentation/git-send-email.txt   | 7 +++
 contrib/completion/git-completion.bash | 2 +-
 git-send-email.perl| 9 -
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index 3241170..1161d3e 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -218,6 +218,13 @@ Automating
Output of this command must be single email address per line.
Default is the value of 'sendemail.cccmd' configuration value.
 
+--series-cc-cmd=command::
+   Specify a command to execute to generate Cc: entries for the whole
+   patch series.
+   The arguments would be the same rev-list options the user specified.
+   Output of this command must be single email address per line.
+   Default is the value of 'sendemail.seriescccmd' configuration value.
+
 --[no-]chain-reply-to::
If this is set, each email will be sent as a reply to the previous
email sent.  If disabled with --no-chain-reply-to, all emails after
diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index be800e0..0b04229 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1555,7 +1555,7 @@ _git_send_email ()
return
;;
--*)
-   __gitcomp --annotate --bcc --cc --cc-cmd --chain-reply-to
+   __gitcomp --annotate --bcc --cc --cc-cmd --series-cc-cmd 
--chain-reply-to
--compose --confirm= --dry-run --envelope-sender
--from --identity
--in-reply-to --no-chain-reply-to --no-signed-off-by-cc
diff --git a/git-send-email.perl b/git-send-email.perl
index 26d4477..da89ac6 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -191,7 +191,7 @@ sub do_edit {
 
 # Variables with corresponding config settings
 my ($thread, $chain_reply_to, $suppress_from, $signed_off_by_cc);
-my ($to_cmd, $cc_cmd);
+my ($to_cmd, $cc_cmd, $series_cc_cmd);
 my ($smtp_server, $smtp_server_port, @smtp_server_options);
 my ($smtp_authuser, $smtp_encryption);
 my ($identity, $aliasfiletype, @alias_files, $smtp_domain);
@@ -224,6 +224,7 @@ my %config_settings = (
 tocmd = \$to_cmd,
 cc = \@initial_cc,
 cccmd = \$cc_cmd,
+seriescccmd = \$series_cc_cmd,
 aliasfiletype = \$aliasfiletype,
 bcc = \@bcclist,
 suppresscc = \@suppress_cc,
@@ -305,6 +306,7 @@ my $rc = GetOptions(h = \$help,
compose = \$compose,
quiet = \$quiet,
cc-cmd=s = \$cc_cmd,
+   series-cc-cmd=s = \$series_cc_cmd,
suppress-from! = \$suppress_from,
suppress-cc=s = \@suppress_cc,
signed-off-cc|signed-off-by-cc! = \$signed_off_by_cc,
@@ -766,6 +768,11 @@ if (!@initial_to  !defined $to_cmd) {
$prompting++;
 }
 
+if (@rev_list_opts) {
+   push @initial_cc, recipients_cmd(series-cc-cmd, cc, $series_cc_cmd, 
@rev_list_opts)
+   if defined $series_cc_cmd;
+}
+
 sub expand_aliases {
return map { expand_one_alias($_) } @_;
 }
-- 
1.8.0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html