X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-convert;h=2742be79fe1d47b4d0ef79c76ab95660a7e18d11;hb=e350de7fdbe12dafc36e893e66ce8c93ec6dc3f2;hp=56ac44f51db82c715fb8230c098848c89a96710d;hpb=c34a83286234ea1e876ebdf92a33744272bb6f4e;p=public-inbox.git diff --git a/script/public-inbox-convert b/script/public-inbox-convert index 56ac44f5..2742be79 100755 --- a/script/public-inbox-convert +++ b/script/public-inbox-convert @@ -45,7 +45,6 @@ if (($old->{version} || 1) >= 2) { die "Only conversion from v1 inboxes is supported\n"; } my $new = { %$old }; -delete $new->{altid}; # TODO: support altid for v2 $new->{mainrepo} = abs_path($new_dir); $new->{version} = 2; $new = PublicInbox::InboxWritable->new($new); @@ -61,6 +60,16 @@ $old->with_umask(sub { "--file=$new->{mainrepo}/all.git/config", 'core.sharedRepository', $sr]); } + if (my $alt = $new->{altid}) { + require PublicInbox::AltId; + foreach my $i (0..$#$alt) { + my $src = PublicInbox::AltId->new($old, $alt->[$i], 0); + $src->mm_alt or next; + my $dst = PublicInbox::AltId->new($new, $alt->[$i], 1); + $dst = $dst->{filename}; + $src->mm_alt->{dbh}->sqlite_backup_to_file($dst); + } + } }); my $state = ''; my ($prev, $from); @@ -125,6 +134,6 @@ my $mm = $old->mm; $mm->{dbh}->sqlite_backup_to_file("$new_dir/msgmap.sqlite3") if $mm; $v2w->done; if ($index) { - $v2w->reindex; + $v2w->index_sync; $v2w->done; }