From 5146114b3bc0dbee255a936703fe821ee4a1eebf Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 27 Oct 2020 07:54:29 +0000 Subject: v2writable: make *last_commits and sync_prepare OO methods This will allow ExtSearchIdx to override or reuse them more easily. Unfortunately we lose prototype validation, but that seems to be discouraged anyways given the 'signatures' feature in Perl 5.20+. --- lib/PublicInbox/V2Writable.pm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index 3d3c25ec..ca60f2a1 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -952,8 +952,9 @@ sub index_oid { # cat_async callback } # only update last_commit for $i on reindex iff newer than current +# $sync will be used by subclasses sub update_last_commit { - my ($self, $git, $i, $cmt) = @_; + my ($self, $sync, $git, $i, $cmt) = @_; my $last = last_epoch_commit($self, $i); if (defined $last && is_ancestor($git, $last, $cmt)) { my @cmd = (qw(rev-list --count), "$last..$cmt"); @@ -963,7 +964,7 @@ sub update_last_commit { last_epoch_commit($self, $i, $cmt); } -sub last_commits ($$) { +sub last_commits { my ($self, $sync) = @_; my $heads = []; for (my $i = $sync->{epoch_max}; $i >= 0; $i--) { @@ -1028,6 +1029,7 @@ sub artnum_max { $_[0]->{mm}->num_highwater } sub sync_prepare ($$) { my ($self, $sync) = @_; + $sync->{ranges} = sync_ranges($self, $sync); my $pr = $sync->{-opt}->{-progress}; my $regen_max = 0; my $head = $sync->{ibx}->{ref_head} || 'HEAD'; @@ -1232,7 +1234,7 @@ sub index_epoch ($$$) { } } $all->async_wait_all; - $self->update_last_commit($git, $i, $stk->{latest_cmt}); + $self->update_last_commit($sync, $git, $i, $stk->{latest_cmt}); } sub xapian_only { @@ -1294,7 +1296,6 @@ sub index_sync { ibx => $self->{ibx}, epoch_max => $epoch_max, }; - $sync->{ranges} = sync_ranges($self, $sync); if (sync_prepare($self, $sync)) { # tmp_clone seems to fail if inside a transaction, so # we rollback here (because we opened {mm} for reading) -- cgit v1.2.3-24-ge0c7