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,AWL,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 965AD1F462; Mon, 10 Jun 2019 17:56:12 +0000 (UTC) Date: Mon, 10 Jun 2019 17:56:12 +0000 From: Eric Wong To: meta@public-inbox.org Cc: Konstantin Ryabitsev Subject: [PATCH 12/11] edit|purge: improve output on rewrites Message-ID: <20190610175612.wokxk45hldsjf2rb@dcvr> References: <20190609025147.24966-1-e@80x24.org> <20190610150647.GA16418@chatter.i7.local> <20190610154058.jqaawkktvb5u2itj@dcvr> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20190610154058.jqaawkktvb5u2itj@dcvr> List-Id: Eric Wong wrote: > I just noticed, the status message triggers a perl uninitialized > warning with multiple epochs, but it's harmless. Will fix in a > bit. Pushed as 6e507c8cb41b0d48963503a88034348d74506211 ------------------8<------------- Subject: [PATCH] edit|purge: improve output on rewrites Fill in undef as "(unchanged)" when displaying commits and prefix the epoch name. --- lib/PublicInbox/AdminEdit.pm | 17 +++++++++++++++++ script/public-inbox-edit | 9 ++------- script/public-inbox-purge | 7 +------ t/purge.t | 4 ++-- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/lib/PublicInbox/AdminEdit.pm b/lib/PublicInbox/AdminEdit.pm index b27c831..169feba 100644 --- a/lib/PublicInbox/AdminEdit.pm +++ b/lib/PublicInbox/AdminEdit.pm @@ -47,4 +47,21 @@ sub check_editable ($) { } } +# takes the output of V2Writable::purge and V2Writable::replace +# $rewrites = [ array commits keyed by epoch ] +sub show_rewrites ($$$) { + my ($fh, $ibx, $rewrites) = @_; + print $fh "$ibx->{mainrepo}:"; + if (scalar @$rewrites) { + my $epoch = -1; + my @out = map {; + ++$epoch; + "$epoch.git: ".(defined($_) ? $_ : '(unchanged)') + } @$rewrites; + print $fh join("\n\t", '', @out), "\n"; + } else { + print $fh " NONE\n"; + } +} + 1; diff --git a/script/public-inbox-edit b/script/public-inbox-edit index ff0351a..7a534cc 100755 --- a/script/public-inbox-edit +++ b/script/public-inbox-edit @@ -207,7 +207,7 @@ W: possible message boundary splitting error next unless $opt->{verbose}; # should we consider this machine-parseable? - print "$ibx->{mainrepo}:\n\tNONE\n"; + PublicInbox::AdminEdit::show_rewrites(\*STDOUT, $ibx, []); next; } @@ -223,11 +223,6 @@ W: possible message boundary splitting error } next unless $opt->{verbose}; # should we consider this machine-parseable? - print "$ibx->{mainrepo}:"; - if (scalar @$commits) { - print join("\n\t", '', @$commits), "\n"; - } else { - print "\tNONE\n"; - } + PublicInbox::AdminEdit::show_rewrites(\*STDOUT, $ibx, $commits); } } diff --git a/script/public-inbox-purge b/script/public-inbox-purge index 846557c..0705d17 100755 --- a/script/public-inbox-purge +++ b/script/public-inbox-purge @@ -45,12 +45,7 @@ foreach my $ibx (@ibxs) { $v2w->done; if ($opt->{verbose}) { # should we consider this machine-parseable? - print "$ibx->{mainrepo}:"; - if (scalar @$commits) { - print join("\n\t", '', @$commits), "\n"; - } else { - print " NONE\n"; - } + PublicInbox::AdminEdit::show_rewrites(\*STDOUT, $ibx, $commits); } $n_purged += scalar @$commits; } diff --git a/t/purge.t b/t/purge.t index c1e0e9a..384f32a 100644 --- a/t/purge.t +++ b/t/purge.t @@ -57,7 +57,7 @@ is($? >> 8, 1, 'missed purge exits with 1'); # a successful case: ok(IPC::Run::run([$purge, $mainrepo], \$raw, \$out, \$err), 'match OK'); -like($out, qr/^\t[a-f0-9]{40,}/m, 'removed commit noted'); +like($out, qr/\b[a-f0-9]{40,}/m, 'removed commit noted'); # add (old) vger filter to config file print $cfg_fh <