X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-compact;h=43e94609a01ee79891cf11c25363e263492d06c5;hb=9d6468d9560b8cd26ba2529d7a09a93ec5ad8c00;hp=e69771650797b9a3ff55d1ca7f3755e7f2972799;hpb=35ff6bb106909b1c1232666a9792156dfa398ea8;p=public-inbox.git diff --git a/script/public-inbox-compact b/script/public-inbox-compact index e6977165..43e94609 100755 --- a/script/public-inbox-compact +++ b/script/public-inbox-compact @@ -35,8 +35,13 @@ $ibx->umask_prepare; sub commit_changes ($$$) { my ($im, $old, $new) = @_; my @st = stat($old) or die "failed to stat($old): $!\n"; - link("$old/over.sqlite3", "$new/over.sqlite3") or die - "failed to link {$old => $new}/over.sqlite3: $!\n"; + + my $over = "$old/over.sqlite3"; + if (-f $over) { + require PublicInbox::Over; + $over = PublicInbox::Over->new($over); + $over->connect->sqlite_backup_to_file("$new/over.sqlite3"); + } rename($old, "$new/old") or die "rename $old => $new/old: $!\n"; chmod($st[2] & 07777, $new) or die "chmod $old: $!\n"; rename($new, $old) or die "rename $new => $old: $!\n"; @@ -58,6 +63,7 @@ if ($v == 2) { if ($dn =~ /\A\d+\z/) { push @parts, "$old/$dn"; } elsif ($dn eq '.' || $dn eq '..') { + } elsif ($dn =~ /\Aover\.sqlite3/) { } else { warn "W: skipping unknown Xapian DB: $old/$dn\n" }