my $m = $err ? 'rollback' : 'commit';
eval { $mm->{dbh}->$m };
$err .= "msgmap $m: $@\n" if $@;
+ eval { $mm->{dbh}->do('PRAGMA optimize') };
+ $err .= "msgmap optimize: $@\n" if $@;
}
+ if ($self->{oidx} && $self->{oidx}->{dbh}) {
+ if ($err) {
+ eval { $self->{oidx}->rollback_lazy };
+ $err .= "overview rollback: $@\n" if $@;
+ }
+ eval { $self->{oidx}->{dbh}->do('PRAGMA optimize') };
+ $err .= "overview optimize: $@\n" if $@;
+ }
+
my $shards = delete $self->{idx_shards};
if ($shards) {
for (@$shards) {
my $req = { %$sync, oid => $oid };
$self->git->cat_async($oid, $unindex_oid, $req);
}
- $self->git->cat_async_wait;
+ $self->git->async_wait_all;
}
return 0 if $sync->{quit};
if (!$regen_max) {
$self->git->cat_async($1, $unindex_oid, { %$sync, oid => $1 });
}
close $fh or die "git log failed: \$?=$?";
- $self->git->cat_async_wait;
+ $self->git->async_wait_all;
return unless $sync->{-opt}->{prune};
my $after = scalar keys %$unindexed;
index_xap_step($self, $sync, $art_beg, 1);
}
}
- $self->git->cat_async_wait;
+ $self->git->async_wait_all;
$self->{ibx}->cleanup;
$self->done;
}