From 6e507c8cb41b0d48963503a88034348d74506211 Mon Sep 17 00:00:00 2001 From: "Eric Wong (Contractor, The Linux Foundation)" Date: Mon, 10 Jun 2019 16:58:55 +0000 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 b27c831b..169feba0 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 ff0351a3..7a534cc2 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 846557ca..0705d170 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 c1e0e9a0..384f32a6 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 <