From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 8C466211B4; Sat, 5 Jan 2019 23:17:30 +0000 (UTC) Date: Sat, 5 Jan 2019 23:17:30 +0000 From: Eric Wong To: meta@public-inbox.org Subject: [PATCH v2] index: quiet down git-log error messages on new inboxes Message-ID: <20190105231730.fv5atki6efvmjgaz@dcvr> References: <20190105110942.16074-1-e@80x24.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20190105110942.16074-1-e@80x24.org> List-Id: 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