user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH v2] index: quiet down git-log error messages on new inboxes
Date: Sat, 5 Jan 2019 23:17:30 +0000	[thread overview]
Message-ID: <20190105231730.fv5atki6efvmjgaz@dcvr> (raw)
In-Reply-To: <20190105110942.16074-1-e@80x24.org>

The new t/*filter_rubylang.t tests call -index immediately
after -init, which causes confusing messages to show up to
the end user.

Check the validity of the ref before calling "git-log".
---
 v2: quiet down "public-inbox-index" on v2 repos, too

 lib/PublicInbox/SearchIdx.pm  | 11 +++++++++++
 lib/PublicInbox/V2Writable.pm |  3 ++-
 t/mda_filter_rubylang.t       |  4 +---
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index 76f3f33..fd48169 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -607,6 +607,17 @@ sub _git_log {
 	my ($self, $range) = @_;
 	my $git = $self->{git};
 
+	if (index($range, '..') < 0) {
+		# don't show annoying git errrors to users who run -index
+		# on empty inboxes
+		$git->qx(qw(rev-parse -q --verify), "$range^0");
+		if ($?) {
+			open my $fh, '<', '/dev/null' or
+				die "failed to open /dev/null: $!\n";
+			return $fh;
+		}
+	}
+
 	# Count the new files so they can be added newest to oldest
 	# and still have numbers increasing from oldest to newest
 	my $fcount = 0;
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index 93babed..0a304aa 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -790,7 +790,8 @@ sub index_prepare {
 		my $git_dir = git_dir_n($self, $i);
 		-d $git_dir or next; # missing parts are fine
 		my $git = PublicInbox::Git->new($git_dir);
-		chomp(my $tip = $git->qx('rev-parse', $head));
+		chomp(my $tip = $git->qx(qw(rev-parse -q --verify), $head));
+		next if $?; # new repo
 		my $range;
 		if (defined(my $cur = $ranges->[$i])) {
 			$range = "$cur..$tip";
diff --git a/t/mda_filter_rubylang.t b/t/mda_filter_rubylang.t
index cb6da4b..0fb65a4 100644
--- a/t/mda_filter_rubylang.t
+++ b/t/mda_filter_rubylang.t
@@ -29,9 +29,7 @@ for my $v (qw(V1 V2)) {
 	my @cmd = ('blib/script/public-inbox-init', "-$v", $v, $mainrepo,
 		"http://example.com/$v", $addr);
 	is(system(@cmd), 0, 'public-inbox init OK');
-	if ($v eq 'V1') {
-		is(system('blib/script/public-inbox-index', $mainrepo), 0);
-	}
+	is(system('blib/script/public-inbox-index', $mainrepo), 0);
 	is(system(@cfg, "$cfgpfx.filter", 'PublicInbox::Filter::RubyLang'), 0);
 	is(system(@cfg, "$cfgpfx.altid",
 		'serial:alerts:file=msgmap.sqlite3'), 0);
-- 
EW

      reply	other threads:[~2019-01-05 23:17 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-05 11:09 [PATCH] index: quiet down git-log error messages on new inboxes Eric Wong
2019-01-05 23:17 ` Eric Wong [this message]

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: https://public-inbox.org/README

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

  git send-email \
    --in-reply-to=20190105231730.fv5atki6efvmjgaz@dcvr \
    --to=e@80x24.org \
    --cc=meta@public-inbox.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.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).