From: Eric Wong Date: Tue, 27 Oct 2020 07:54:29 +0000 (+0000) Subject: v2writable: make *last_commits and sync_prepare OO methods X-Git-Tag: v1.7.0~1672 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=5146114b3bc0dbee255a936703fe821ee4a1eebf;p=public-inbox.git 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+. --- 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)