dumping ground for random patches and texts
 help / color / mirror / Atom feed
From: Eric Wong <e@80x24.org>
To: spew@80x24.org
Subject: [PATCH 2/5] searchidx: quiet down old git patchid
Date: Thu, 14 Dec 2023 19:08:07 -0500	[thread overview]
Message-ID: <20231215000810.3458531-2-e@80x24.org> (raw)
In-Reply-To: <20231215000810.3458531-1-e@80x24.org>

CentOS 7.x ships with git 1.8.5, so unless a CentOS 7.x user
enables 3rd-party repos[1], they'll be stuck with a version
of git without `--stable' (though I'm becoming skeptical of
indexing patchids at all).

[1] https://public-inbox.org/meta/20210421151308.yz5hzkgm75klunpe@nitro.local/
---
 lib/PublicInbox/SearchIdx.pm | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index 1ac8e33e..1cbf6d23 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -44,6 +44,7 @@ my $hex = '[a-f0-9]';
 my $OID = $hex .'{40,}';
 my @VMD_MAP = (kw => 'K', L => 'L'); # value order matters
 our $INDEXLEVELS = qr/\A(?:full|medium|basic)\z/;
+our $PATCHID_BROKEN;
 
 sub new {
 	my ($class, $ibx, $creat, $shard) = @_;
@@ -63,6 +64,7 @@ sub new {
 			die("Invalid indexlevel $ibx->{indexlevel}\n");
 		}
 	}
+	undef $PATCHID_BROKEN; # retry on new instances in case of upgrades
 	$ibx = PublicInbox::InboxWritable->new($ibx);
 	my $self = PublicInbox::Search->new($ibx);
 	bless $self, $class;
@@ -353,7 +355,8 @@ sub index_diff ($$$) {
 sub index_body_text {
 	my ($self, $doc, $sref) = @_;
 	my $rd;
-	if ($$sref =~ /^(?:diff|---|\+\+\+) /ms) { # start patch-id in parallel
+	# start patch-id in parallel
+	if ($$sref =~ /^(?:diff|---|\+\+\+) /ms && !$PATCHID_BROKEN) {
 		my $git = ($self->{ibx} // $self->{eidx} // $self)->git;
 		my $fh = PublicInbox::IO::write_file '+>:utf8', undef, $$sref;
 		$fh->flush or die "flush: $!";
@@ -386,7 +389,12 @@ sub index_body_text {
 	if (defined $rd) { # reap `git patch-id'
 		(readline($rd) // '') =~ /\A([a-f0-9]{40,})/ and
 			$doc->add_term('XDFID'.$1);
-		$rd->close or warn "W: git patch-id failed: \$?=$? (non-fatal)"
+		if (!$rd->close) {
+			my $c = 'git patch-id --stable';
+			$PATCHID_BROKEN = ($? >> 8) == 129;
+			$PATCHID_BROKEN ? warn("W: $c requires git v2.1.0+\n")
+				: warn("W: $c failed: \$?=$? (non-fatal)");
+		}
 	}
 }
 

  reply	other threads:[~2023-12-15  0:08 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-15  0:08 [PATCH 1/5] tests: quiet uninitialized warnings on CentOS 7.x Eric Wong
2023-12-15  0:08 ` Eric Wong [this message]
2023-12-15  0:08 ` [PATCH 3/5] cindex: --prune needs git 2.6+ Eric Wong
2023-12-15  0:08 ` [PATCH 4/5] git: quiet down `rev-parse --git-path' errors Eric Wong
2023-12-15  0:08 ` [PATCH 5/5] t/pop3d-limit: use v1 inbox to test on ancient git Eric Wong

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231215000810.3458531-2-e@80x24.org \
    --to=e@80x24.org \
    --cc=spew@80x24.org \
    /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.
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).