}
sub reindex_oid {
- my ($self, $mm_tmp, $D, $git, $oid, $regen) = @_;
+ my ($self, $mm_tmp, $D, $git, $oid, $regen, $reindex) = @_;
my $len;
my $msgref = $git->cat_file($oid, \$len);
my $mime = PublicInbox::MIME->new($$msgref);
if (!defined($mid0) || $del) {
if (!defined($mid0) && $del) { # expected for deletes
- $$regen--;
+ $num = $$regen--;
+ $self->{mm}->num_highwater($num) unless $reindex;
return
}
return unless defined $latest;
$self->idx_init; # acquire lock
my $mm_tmp = $self->{mm}->tmp_clone;
- my $ranges = $opts->{reindex} ? [] : $self->last_commits($epoch_max);
+ my $reindex = $opts->{reindex};
+ my $ranges = $reindex ? [] : $self->last_commits($epoch_max);
my $high = $self->{mm}->num_highwater();
my $regen = $self->index_prepare($opts, $epoch_max, $ranges);
chomp($cmt = $_);
} elsif (/\A:\d{6} 100644 $x40 ($x40) [AM]\tm$/o) {
$self->reindex_oid($mm_tmp, $D, $git, $1,
- $regen);
+ $regen, $reindex);
} elsif (/\A:\d{6} 100644 $x40 ($x40) [AM]\td$/o) {
$self->mark_deleted($D, $git, $1);
}