From e1a74736b44474ecbe7b216c2e73daae22db0431 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 30 Nov 2023 11:41:05 +0000 Subject: git_async_cat: use git from "all" extindex if possible For inboxes associated with an extindex (currently only the special "all") one, we can share the git process across all those inboxes unambiguously when retrieving full SHA-1 blobs. The comment for my proposed patch is also out-of-date as that git speedup has been a part of git since 2.33. --- lib/PublicInbox/GitAsyncCat.pm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/PublicInbox/GitAsyncCat.pm') diff --git a/lib/PublicInbox/GitAsyncCat.pm b/lib/PublicInbox/GitAsyncCat.pm index 09744b34..f57e0336 100644 --- a/lib/PublicInbox/GitAsyncCat.pm +++ b/lib/PublicInbox/GitAsyncCat.pm @@ -9,11 +9,11 @@ our $GCF2C; # singleton PublicInbox::Gcf2Client sub ibx_async_cat ($$$$) { my ($ibx, $oid, $cb, $arg) = @_; - my $git = $ibx->{git} // $ibx->git; + my $isrch = $ibx->{isrch}; + my $git = $isrch ? $isrch->{es}->git : ($ibx->{git} // $ibx->git); # {topdir} means ExtSearch (likely [extindex "all"]) with potentially - # 100K alternates. git(1) has a proposed patch for 100K alternates: - # - if (!defined($ibx->{topdir}) && !defined($git->{-tmp}) && + # 100K alternates. git v2.33+ can handle 100k alternates fairly well. + if (!$isrch && !defined($ibx->{topdir}) && !defined($git->{-tmp}) && ($GCF2C //= eval { require PublicInbox::Gcf2Client; PublicInbox::Gcf2Client::new(); -- cgit v1.2.3-24-ge0c7