lib/PublicInbox/AdminEdit.pm | 17 +++++++++++++++++ script/public-inbox-edit | 9 ++------- script/public-inbox-purge | 7 +------ t/purge.t | 4 ++-- diff --git a/lib/PublicInbox/AdminEdit.pm b/lib/PublicInbox/AdminEdit.pm index b27c831b3ee30363795be25525dd5387d7e9fa85..169feba0dba9dbe8f3aa3778f4635e9a973118c6 100644 --- a/lib/PublicInbox/AdminEdit.pm +++ b/lib/PublicInbox/AdminEdit.pm @@ -47,4 +47,21 @@ } } } +# 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 ff0351a389cca4243a28a64971ba3b8533438da4..7a534cc2b094bc5f796a34aec32ce76dbda0a48a 100755 --- a/script/public-inbox-edit +++ b/script/public-inbox-edit @@ -207,7 +207,7 @@ warn "No change detected to:\n", show_cmd($ibx, $smsg); 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 @@ next; } 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 846557cab47b6d1c235222fbc0bf345c93e69269..0705d170eae8806f706c75e246cd7594b2b20f20 100755 --- a/script/public-inbox-purge +++ b/script/public-inbox-purge @@ -45,12 +45,7 @@ $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 c1e0e9a023ab8e4b24d513ab7020591ac9ffa3a6..384f32a652bfce92eb917093cfbc5ba37002c9bc 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 <