about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2020-10-27 07:54:29 +0000
committerEric Wong <e@80x24.org>2020-11-07 10:19:03 +0000
commit5146114b3bc0dbee255a936703fe821ee4a1eebf (patch)
treeee9e25bc73901ff6596cbfbfc75dfbaedd0a1f40 /lib
parent50c4fa0c8254366e0a83e237aca0c992fe669478 (diff)
downloadpublic-inbox-5146114b3bc0dbee255a936703fe821ee4a1eebf.tar.gz
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+.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/V2Writable.pm9
1 files changed, 5 insertions, 4 deletions
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)