local $self->{latest_cmt};
$self->{mm}->{dbh}->begin_work;
- if (my @leftovers = keys %{delete($sync->{D}) // {}}) {
+ if (my @leftovers = keys %{delete($self->{D}) // {}}) {
warn('W: unindexing '.scalar(@leftovers)." leftovers\n");
for my $oid (@leftovers) {
last if $self->{quit};
sub log2stack ($$$$) {
my ($self, $sync, $git, $range) = @_;
- my $D = $sync->{D}; # OID_BIN => NR (if reindexing, undef otherwise)
+ my $D = $self->{D}; # OID_BIN => NR (if reindexing, undef otherwise)
my ($add, $del);
if ($sync->{ibx}->version == 1) {
my $path = $hex.'{2}/'.$hex.'{38}';
$git->qx(qw(rev-parse -q --verify), "$range^0");
return PublicInbox::IdxStack->new->read_prepare if $?;
}
- $sync->{D} = $sync->{reindex} ? {} : undef; # OID_BIN => NR
+ local $self->{D} = $sync->{reindex} ? {} : undef; # OID_BIN => NR
log2stack($self, $sync, $git, $range);
}
my $regen_max = 0;
my $head = $sync->{ibx}->{ref_head} || 'HEAD';
my $pfx;
+ local $self->{D}; # delete state
if ($pr) {
($pfx) = ($sync->{ibx}->{inboxdir} =~ m!([^/]+)\z!g);
$pfx //= $sync->{ibx}->{inboxdir};
# We intentionally do NOT use {D} in the non-reindex case
# because we want NNTP article number gaps from unindexed
# messages to show up in mirrors, too.
- $sync->{D} //= $sync->{reindex} ? {} : undef; # OID_BIN => NR
+ $self->{D} //= $sync->{reindex} ? {} : undef; # OID_BIN => NR
my $stk = log2stack($self, $sync, $git, $range);
return 0 if $self->{quit};
my $nr = $stk ? $stk->num_records : 0;
# XXX this should not happen unless somebody bypasses checks in
# our code and blindly injects "d" file history into git repos
- if (my @leftovers = keys %{delete($sync->{D}) // {}}) {
+ if (my @leftovers = keys %{delete($self->{D}) // {}}) {
warn('W: unindexing '.scalar(@leftovers)." leftovers\n");
local $self->{current_info} = 'leftover ';
my $unindex_oid = $self->can('unindex_oid');