lib/PublicInbox/V2Writable.pm | 18 +++++++++--------- diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index efb9f42bc6327f0cf1a60a245f9bcb0731ba1c8f..e05dadc011abc297b071d8dbc56dd3cd2ded058c 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -706,7 +706,7 @@ } } sub reindex_oid { - my ($self, $sync, $git, $oid, $regen, $reindex) = @_; + my ($self, $sync, $git, $oid, $regen) = @_; my $len; my $msgref = $git->cat_file($oid, \$len); my $mime = PublicInbox::MIME->new($$msgref); @@ -750,7 +750,7 @@ if (!defined($mid0) || $del) { if (!defined($mid0) && $del) { # expected for deletes $num = $$regen--; - $self->{mm}->num_highwater($num) unless $reindex; + $self->{mm}->num_highwater($num) if !$sync->{reindex}; return } @@ -940,10 +940,11 @@ PublicInbox::Import::run_die(['git', "--git-dir=$git->{git_dir}", qw(-c gc.reflogExpire=now gc --prune=all)]); } -sub index_ranges ($$$) { - my ($self, $reindex, $epoch_max) = @_; +sub sync_ranges ($$$) { + my ($self, $sync, $epoch_max) = @_; + my $reindex = $sync->{reindex}; + return last_commits($self, $epoch_max) unless $reindex; - return [] if ref($reindex) ne 'HASH'; my $ranges = $reindex->{from}; # arrayref; @@ -964,9 +965,9 @@ $self->idx_init($opts); # acquire lock my $sync = { mm_tmp => $self->{mm}->tmp_clone, D => {}, # "$mid\0$cid" => $oid + reindex => $opts->{reindex}, }; - my $reindex = $opts->{reindex}; - my $ranges = index_ranges($self, $reindex, $epoch_max); + my $ranges = sync_ranges($self, $sync, $epoch_max); my $high = $self->{mm}->num_highwater(); my $regen = $self->index_prepare($opts, $epoch_max, $ranges); @@ -999,8 +1000,7 @@ $self->{current_info} = "$i.git $_"; if (/\A$x40$/o && !defined($cmt)) { $cmt = $_; } elsif (/\A:\d{6} 100644 $x40 ($x40) [AM]\tm$/o) { - $self->reindex_oid($sync, $git, $1, - $regen, $reindex); + $self->reindex_oid($sync, $git, $1, $regen); } elsif (/\A:\d{6} 100644 $x40 ($x40) [AM]\td$/o) { $self->mark_deleted($sync, $git, $1); }