This is on top of my just-submitted [1] which in turn is on top of send-email work of mine sitting in "next". I was meaning to hold off on these patches for a bit, but given the concurrent on-list discussion about doing config discovery in send-email I wanted to send this now. This combines by not-picked-up[1] recent patches to remove the support for the "sendemail.smtpssl" variable with the later patches showing where that effort was really going. As noted in the subject this speeds up git-send-email invocations by ~2x or more, and brings the very slow t9001 test from running in ~26s on my box to ~12s. It's no longer consistently the slowest test I run. This is basically done in two ways: We lazily invoke "git config" to get config, before it's very eager, and deferring Perl compilation with s/use/require/g. 1. https://lore.kernel.org/git/patch-1.1-92571a8cf7-20210512T094803Z-avarab@xxxxxxxxx/ 2. https://lore.kernel.org/git/cover-0.2-00000000000-20210411T144128Z-avarab@xxxxxxxxx/ Ævar Arnfjörð Bjarmason (9): send-email: remove non-working support for "sendemail.smtpssl" send-email: refactor sendemail.smtpencryption config parsing 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 Documentation/config/sendemail.txt | 3 - git-send-email.perl | 145 +++++++++++++++++------------ perl/Git.pm | 49 +++++----- 3 files changed, 111 insertions(+), 86 deletions(-) -- 2.31.1.909.g789bb6d90e