From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Gregory Anders" <greg@gpanders.com>,
"Đoàn Trần Công Danh" <congdanhqx@gmail.com>,
"Jeff King" <peff@peff.net>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Eric Wong" <e@80x24.org>,
"Felipe Contreras" <felipe.contreras@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v3 00/13] send-email: various optimizations to speed up by >2x
Date: Sun, 23 May 2021 10:56:05 +0200 [thread overview]
Message-ID: <cover-00.13-0000000000-20210523T085231Z-avarab@gmail.com> (raw)
In-Reply-To: <cover-00.10-00000000000-20210520T081826Z-avarab@gmail.com>
A re-roll of v2[1] which fixes issues pointed out with v2, plus some
others I noticed along the way.
There are now no longer any changes to the "public"
Git::config_regxp() API. Instead it's left bitrotting in our tree at
the end of this, having 0 in-tree users (instead of the 1 currently).
We also handle the -c foo.bar (NULL value) case correctly, per what
Jeff King pointed out. I also found a related issue with
GIT_TEST_PERL_FATAL_WARNINGS=true, which we can now turn on for
git-send-email.perl.
1. https://lore.kernel.org/git/cover-00.10-00000000000-20210520T081826Z-avarab@gmail.com/
Ævar Arnfjörð Bjarmason (13):
send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true
send-email tests: test for boolean variables without a value
send-email: remove non-working support for "sendemail.smtpssl"
send-email: refactor sendemail.smtpencryption config parsing
send-email: copy "config_regxp" into git-send-email.perl
send-email: lazily load config for a big speedup
send-email: lazily shell out to "git var"
send-email: use function syntax instead of barewords
send-email: get rid of indirect object syntax
send-email: lazily load modules for a big speedup
perl: lazily load some common Git.pm setup code
send-email: move trivial config handling to Perl
perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd()
Documentation/config/sendemail.txt | 3 -
git-send-email.perl | 174 +++++++++++++++++++----------
perl/Git.pm | 35 +++---
t/t9001-send-email.sh | 29 +++++
4 files changed, 160 insertions(+), 81 deletions(-)
Range-diff against v2:
-: ---------- > 1: 71f890dc60 send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true
-: ---------- > 2: 707c2ca556 send-email tests: test for boolean variables without a value
1: 8474acae68 = 3: 3bbd48dab2 send-email: remove non-working support for "sendemail.smtpssl"
2: b87f53adbe = 4: bed0f98d68 send-email: refactor sendemail.smtpencryption config parsing
-: ---------- > 5: c12f69a411 send-email: copy "config_regxp" into git-send-email.perl
3: 1b27a393ae ! 6: d1c233d251 send-email: lazily load config for a big speedup
@@ git-send-email.perl: sub read_config {
next unless defined $v;
next if $configured->{$setting}++;
$$target = $v;
-@@ git-send-email.perl: sub read_config {
- }
+@@ git-send-email.perl: sub config_regexp {
+ return @ret;
}
+# Save ourselves a lot of work of shelling out to 'git config' (it
+# parses 'bool' etc.) by only doing so for config keys that exist.
+my %known_config_keys;
+{
-+ my @known_config_keys = Git::config_regexp("^sende?mail[.]");
++ my @known_config_keys = config_regexp("^sende?mail[.]");
+ @known_config_keys{@known_config_keys} = ();
+}
+
@@ git-send-email.perl: sub read_config {
my $rc = GetOptions(
"identity=s" => \$identity,
"no-identity" => \$no_identity,
-@@ git-send-email.perl: sub read_config {
+@@ git-send-email.perl: sub config_regexp {
# Now we know enough to read the config
{
my %configured;
@@ git-send-email.perl: sub read_config {
}
# Begin by accumulating all the variables (defined above), that we will end up
-@@ git-send-email.perl: sub read_config {
+@@ git-send-email.perl: sub config_regexp {
usage();
}
--if ($forbid_sendmail_variables && (scalar Git::config_regexp("^sendmail[.]")) != 0) {
+-if ($forbid_sendmail_variables && (scalar config_regexp("^sendmail[.]")) != 0) {
+if ($forbid_sendmail_variables && grep { /^sendmail/s } keys %known_config_keys) {
die __("fatal: found configuration options for 'sendmail'\n" .
"git-send-email is configured with the sendemail.* options - note the 'e'.\n" .
"Set sendemail.forbidSendmailVariables to false to disable this check.\n");
-
- ## perl/Git.pm ##
-@@ perl/Git.pm: sub config_regexp {
- } catch Git::Error::Command with {
- my $E = shift;
- if ($E->value() == 1) {
-- my @matches = ();
-- return @matches;
-+ # Key(s) not found.
-+ return;
- } else {
- throw $E;
- }
4: acee22b77d ! 7: 4326c2f99c send-email: lazily shell out to "git var"
@@ Commit message
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## git-send-email.perl ##
-@@ git-send-email.perl: sub read_config {
+@@ git-send-email.perl: sub config_regexp {
}
my ($repoauthor, $repocommitter);
5: f317cd1c01 = 8: e1fc71e3f9 send-email: use function syntax instead of barewords
6: fc27024f83 = 9: a806ce06f1 send-email: get rid of indirect object syntax
7: f86f5453d7 ! 10: aa11439789 send-email: lazily load modules for a big speedup
@@ git-send-email.perl
@@
use 5.008;
use strict;
- use warnings;
+ use warnings $ENV{GIT_PERL_FATAL_WARNINGS} ? qw(FATAL all) : ();
-use POSIX qw/strftime/;
-use Term::ReadLine;
use Getopt::Long;
@@ git-send-email.perl: sub do_edit {
# SMTP password masked
system "stty echo";
-@@ git-send-email.perl: sub read_config {
+@@ git-send-email.perl: sub config_regexp {
}
sub parse_address_line {
8: 86641377c0 = 11: b3b342b173 perl: lazily load some common Git.pm setup code
9: 895c9e29a9 ! 12: 950dc0f53d send-email: move trivial config handling to Perl
@@ Commit message
Optimize the startup time of git-send-email by using an amended
config_regexp() function to retrieve the list of config keys and
- values we're interested in. See the earlier "send-email: lazily load
- config for a big speedup" commit for why changing its interface is OK.
+ values we're interested in.
For boolean keys we can handle the [true|false] case ourselves, and
the "--get" case didn't need any parsing. Let's leave "--path" and
- other "--bool" cases to "git config". As noted in a preceding commit
- we're free to change the config_regexp() function, it's only used by
- "git send-email".
+ other "--bool" cases to "git config". I'm not bothering with the
+ "undef" or "" case (true and false, respectively), let's just punt on
+ those and others and have "git config --type=bool" handle it.
This brings the runtime of "git send-email" from ~60-~70ms to a very
steady ~40ms on my test box. We now run just one "git config"
@@ Commit message
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+ diff --git a/git-send-email.perl b/git-send-email.perl
+ index 1e9273fd4f..1ea4d9589d 100755
+ --- a/git-send-email.perl
+ +++ b/git-send-email.perl
+ @@ -324,7 +324,11 @@ sub read_config {
+ my $target = $config_bool_settings{$setting};
+ my $key = "$prefix.$setting";
+ next unless exists $known_keys->{$key};
+ - my $v = Git::config_bool(@repo, $key);
+ + my $v = (@{$known_keys->{$key}} == 1 &&
+ + (defined $known_keys->{$key}->[0] &&
+ + $known_keys->{$key}->[0] =~ /^(?:true|false)$/s))
+ + ? $known_keys->{$key}->[0] eq 'true'
+ + : Git::config_bool(@repo, $key);
+ next unless defined $v;
+ next if $configured->{$setting}++;
+ $$target = $v;
+ @@ -353,14 +357,12 @@ sub read_config {
+ my $key = "$prefix.$setting";
+ next unless exists $known_keys->{$key};
+ if (ref($target) eq "ARRAY") {
+ - my @values = Git::config(@repo, $key);
+ - next unless @values;
+ + my @values = @{$known_keys->{$key}};
+ next if $configured->{$setting}++;
+ @$target = @values;
+ }
+ else {
+ - my $v = Git::config(@repo, $key);
+ - next unless defined $v;
+ + my $v = $known_keys->{$key}->[0];
+ next if $configured->{$setting}++;
+ $$target = $v;
+ }
+ @@ -371,12 +373,19 @@ sub config_regexp {
+ my ($regex) = @_;
+ my @ret;
+ eval {
+ - @ret = Git::command(
+ + my $ret = Git::command(
+ 'config',
+ - '--name-only',
+ + '--null',
+ '--get-regexp',
+ $regex,
+ );
+ + @ret = map {
+ + # We must always return ($k, $v) here, since
+ + # empty config values will be just "key\0",
+ + # not "key\nvalue\0".
+ + my ($k, $v) = split /\n/, $_, 2;
+ + ($k, $v);
+ + } split /\0/, $ret;
+ 1;
+ } or do {
+ # If we have no keys we're OK, otherwise re-throw
+ @@ -389,8 +398,10 @@ sub config_regexp {
+ # parses 'bool' etc.) by only doing so for config keys that exist.
+ my %known_config_keys;
+ {
+ - my @known_config_keys = config_regexp("^sende?mail[.]");
+ - @known_config_keys{@known_config_keys} = ();
+ + my @kv = config_regexp("^sende?mail[.]");
+ + while (my ($k, $v) = splice @kv, 0, 2) {
+ + push @{$known_config_keys{$k}} => $v;
+ + }
+ }
+
+ # sendemail.identity yields to --identity. We must parse this
+
## git-send-email.perl ##
@@ git-send-email.perl: sub read_config {
my $target = $config_bool_settings{$setting};
@@ git-send-email.perl: sub read_config {
next unless exists $known_keys->{$key};
- my $v = Git::config_bool(@repo, $key);
+ my $v = (@{$known_keys->{$key}} == 1 &&
-+ $known_keys->{$key}->[0] =~ /^(?:true|false)$/s)
++ (defined $known_keys->{$key}->[0] &&
++ $known_keys->{$key}->[0] =~ /^(?:true|false)$/s))
+ ? $known_keys->{$key}->[0] eq 'true'
+ : Git::config_bool(@repo, $key);
next unless defined $v;
@@ git-send-email.perl: sub read_config {
next if $configured->{$setting}++;
$$target = $v;
}
-@@ git-send-email.perl: sub read_config {
+@@ git-send-email.perl: sub config_regexp {
+ my ($regex) = @_;
+ my @ret;
+ eval {
+- @ret = Git::command(
++ my $ret = Git::command(
+ 'config',
+- '--name-only',
++ '--null',
+ '--get-regexp',
+ $regex,
+ );
++ @ret = map {
++ # We must always return ($k, $v) here, since
++ # empty config values will be just "key\0",
++ # not "key\nvalue\0".
++ my ($k, $v) = split /\n/, $_, 2;
++ ($k, $v);
++ } split /\0/, $ret;
+ 1;
+ } or do {
+ # If we have no keys we're OK, otherwise re-throw
+@@ git-send-email.perl: sub config_regexp {
# parses 'bool' etc.) by only doing so for config keys that exist.
my %known_config_keys;
{
-- my @known_config_keys = Git::config_regexp("^sende?mail[.]");
+- my @known_config_keys = config_regexp("^sende?mail[.]");
- @known_config_keys{@known_config_keys} = ();
-+ my @kv = Git::config_regexp("^sende?mail[.]");
++ my @kv = config_regexp("^sende?mail[.]");
+ while (my ($k, $v) = splice @kv, 0, 2) {
+ push @{$known_config_keys{$k}} => $v;
+ }
}
# sendemail.identity yields to --identity. We must parse this
-
- ## perl/Git.pm ##
-@@ perl/Git.pm: sub config_int {
- =item config_regexp ( RE )
-
- Retrieve the list of configuration key names matching the regular
--expression C<RE>. The return value is a list of strings matching
--this regex.
-+expression C<RE>. The return value is an ARRAY of key-value pairs.
-
- =cut
-
- sub config_regexp {
- my ($self, $regex) = _maybe_self(@_);
- try {
-- my @cmd = ('config', '--name-only', '--get-regexp', $regex);
-+ my @cmd = ('config', '--null', '--get-regexp', $regex);
- unshift @cmd, $self if $self;
-- my @matches = command(@cmd);
-- return @matches;
-+ my $data = command(@cmd);
-+ my (@kv) = map { split /\n/, $_, 2 } split /\0/, $data;
-+ return @kv;
- } catch Git::Error::Command with {
- my $E = shift;
- if ($E->value() == 1) {
10: 97455f993d = 13: c1d7ea664a perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd()
--
2.32.0.rc0.406.g05cb3eebfc
next prev parent reply other threads:[~2021-05-23 8:56 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-12 13:48 [PATCH 0/9] send-email: various optimizations to speed up by >2x Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 1/9] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-12 15:46 ` Đoàn Trần Công Danh
2021-05-12 13:48 ` [PATCH 2/9] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 3/9] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 4/9] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 5/9] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-12 23:11 ` Jeff King
2021-05-12 13:48 ` [PATCH 6/9] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 7/9] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-12 13:48 ` [PATCH 8/9] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-12 18:05 ` Eric Wong
2021-05-12 13:48 ` [PATCH 9/9] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-12 19:52 ` Eric Sunshine
2021-05-12 23:08 ` Jeff King
2021-05-13 7:04 ` Felipe Contreras
2021-05-13 7:07 ` Ævar Arnfjörð Bjarmason
2021-05-13 7:26 ` Jeff King
2021-05-13 8:15 ` Felipe Contreras
2021-05-13 11:45 ` Ævar Arnfjörð Bjarmason
2021-05-12 18:04 ` [PATCH 0/9] send-email: various optimizations to speed up by >2x Eric Wong
2021-05-12 23:34 ` Jeff King
2021-05-12 23:36 ` Jeff King
2021-05-13 7:37 ` Ævar Arnfjörð Bjarmason
2021-05-13 7:49 ` Jeff King
2021-05-20 8:18 ` [PATCH v2 00/10] " Ævar Arnfjörð Bjarmason
2021-05-20 8:18 ` [PATCH v2 01/10] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-20 8:18 ` [PATCH v2 02/10] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 03/10] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 04/10] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 05/10] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 06/10] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 07/10] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 08/10] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 09/10] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-20 8:19 ` [PATCH v2 10/10] perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd() Ævar Arnfjörð Bjarmason
2021-05-20 8:27 ` [PATCH v2 00/10] send-email: various optimizations to speed up by >2x Jeff King
2021-05-20 23:53 ` Junio C Hamano
2021-05-21 6:23 ` Ævar Arnfjörð Bjarmason
2021-05-21 7:07 ` Junio C Hamano
2021-05-21 9:13 ` Jeff King
2021-05-21 9:24 ` Ævar Arnfjörð Bjarmason
2021-05-21 9:37 ` Jeff King
2021-05-28 15:49 ` Felipe Contreras
2021-05-29 8:19 ` Ævar Arnfjörð Bjarmason
2021-05-29 14:53 ` Felipe Contreras
2021-05-30 11:33 ` Ævar Arnfjörð Bjarmason
2021-05-30 16:07 ` Felipe Contreras
2021-05-28 15:12 ` Felipe Contreras
2021-05-23 8:56 ` Ævar Arnfjörð Bjarmason [this message]
2021-05-23 8:56 ` [PATCH v3 01/13] send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 02/13] send-email tests: test for boolean variables without a value Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 03/13] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 04/13] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 05/13] send-email: copy "config_regxp" into git-send-email.perl Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 06/13] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 07/13] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 08/13] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 09/13] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 10/13] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 11/13] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 12/13] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-23 8:56 ` [PATCH v3 13/13] perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd() Ævar Arnfjörð Bjarmason
2021-05-24 1:15 ` [PATCH v3 00/13] send-email: various optimizations to speed up by >2x Junio C Hamano
2021-05-24 7:52 ` [PATCH v4 " Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 01/13] send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 02/13] send-email tests: test for boolean variables without a value Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 03/13] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 04/13] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 05/13] send-email: copy "config_regxp" into git-send-email.perl Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 06/13] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 07/13] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 08/13] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 09/13] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-24 7:52 ` [PATCH v4 10/13] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-27 1:11 ` Junio C Hamano
2021-05-27 11:36 ` Ævar Arnfjörð Bjarmason
2021-05-24 7:53 ` [PATCH v4 11/13] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-24 7:53 ` [PATCH v4 12/13] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-27 15:57 ` Jeff King
2021-05-24 7:53 ` [PATCH v4 13/13] perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd() Ævar Arnfjörð Bjarmason
2021-05-27 16:00 ` [PATCH v4 00/13] send-email: various optimizations to speed up by >2x Jeff King
2021-05-28 9:23 ` [PATCH v5 " Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 01/13] send-email tests: support GIT_TEST_PERL_FATAL_WARNINGS=true Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 02/13] send-email tests: test for boolean variables without a value Ævar Arnfjörð Bjarmason
2021-07-10 23:23 ` Jeff King
2021-05-28 9:23 ` [PATCH v5 03/13] send-email: remove non-working support for "sendemail.smtpssl" Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 04/13] send-email: refactor sendemail.smtpencryption config parsing Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 05/13] send-email: copy "config_regxp" into git-send-email.perl Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 06/13] send-email: lazily load config for a big speedup Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 07/13] send-email: lazily shell out to "git var" Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 08/13] send-email: use function syntax instead of barewords Ævar Arnfjörð Bjarmason
2021-05-28 16:10 ` Felipe Contreras
2021-05-29 8:17 ` Ævar Arnfjörð Bjarmason
2021-05-29 14:25 ` Felipe Contreras
2021-05-28 9:23 ` [PATCH v5 09/13] send-email: get rid of indirect object syntax Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 10/13] send-email: lazily load modules for a big speedup Ævar Arnfjörð Bjarmason
2021-05-28 15:55 ` Felipe Contreras
2021-05-29 8:12 ` Ævar Arnfjörð Bjarmason
2021-05-29 14:24 ` Felipe Contreras
2021-05-28 9:23 ` [PATCH v5 11/13] perl: lazily load some common Git.pm setup code Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 12/13] send-email: move trivial config handling to Perl Ævar Arnfjörð Bjarmason
2021-05-28 9:23 ` [PATCH v5 13/13] perl: nano-optimize by replacing Cwd::cwd() with Cwd::getcwd() Ævar Arnfjörð Bjarmason
2021-05-28 16:13 ` [PATCH v5 00/13] send-email: various optimizations to speed up by >2x Felipe Contreras
2021-05-31 5:48 ` Jeff King
2021-05-31 9:53 ` Ævar Arnfjörð Bjarmason
2021-05-31 14:38 ` Jeff King
2021-05-27 7:21 ` [PATCH 0/9] " Elijah Newren
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover-00.13-0000000000-20210523T085231Z-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=congdanhqx@gmail.com \
--cc=e@80x24.org \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=greg@gpanders.com \
--cc=peff@peff.net \
--cc=sunshine@sunshineco.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).