From 6708ef2102e549dfc46dad0a3d100e24348f5e28 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 10 Aug 2020 02:12:05 +0000 Subject: [PATCH] convert: set No_COW on copied SQLite files We'll use our existing logic and use sqlite_backup_from_file, which appeared in 1.39 (along with sqlite_backup_to_file). --- script/public-inbox-convert | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/script/public-inbox-convert b/script/public-inbox-convert index 275857fa..d655dcc6 100755 --- a/script/public-inbox-convert +++ b/script/public-inbox-convert @@ -115,10 +115,10 @@ $old->with_umask(sub { require PublicInbox::AltId; foreach my $i (0..$#$alt) { my $src = PublicInbox::AltId->new($old, $alt->[$i], 0); - $src->mm_alt or next; + $src = $src->mm_alt or next; + $src = $src->{dbh}->sqlite_db_filename; my $dst = PublicInbox::AltId->new($new, $alt->[$i], 1); - $dst = $dst->{filename}; - $src->mm_alt->{dbh}->sqlite_backup_to_file($dst); + $dst->mm_alt->{dbh}->sqlite_backup_from_file($src); } } my $desc = "$old->{inboxdir}/description"; @@ -184,13 +184,15 @@ waitpid($pid, 0) or die "waitpid failed: $!\n"; $? == 0 or die "fast-export failed: $?\n"; $r = $w = undef; # v2w->done does the actual close and error checking $v2w->done; -if (my $mm = $old->mm) { +if (my $old_mm = $old->mm) { $old->cleanup; - $mm->{dbh}->sqlite_backup_to_file("$new_dir/msgmap.sqlite3"); + $old_mm = $old_mm->{dbh}->sqlite_db_filename; # we want to trigger a reindex, not a from scratch index if # we're reusing the msgmap from an existing v1 installation. $v2w->idx_init($opt); + $v2w->{mm}->{dbh}->sqlite_backup_from_file($old_mm); + my $epoch0 = PublicInbox::Git->new($v2w->git_init(0)); chop(my $cmt = $epoch0->qx(qw(rev-parse --verify), $head)); $v2w->last_epoch_commit(0, $cmt); -- 2.44.0