X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-convert;h=9aa27814d4538a28c75c513d3b90a7e825714767;hb=678fb3c2ba03a4a284620c039717c0d94dd6106a;hp=f58bf27b68e26b6d524340531120799ce08a580e;hpb=c4aa293b2320feb805c5afeaa373f608e5bc8618;p=public-inbox.git diff --git a/script/public-inbox-convert b/script/public-inbox-convert index f58bf27b..9aa27814 100755 --- a/script/public-inbox-convert +++ b/script/public-inbox-convert @@ -71,6 +71,7 @@ my $im = $v2w->importer; my ($r, $w) = $im->gfi_start; my $h = '[0-9a-f]'; my %D; +my $last; while (<$rd>) { if ($_ eq "blob\n") { $state = 'blob'; @@ -90,13 +91,21 @@ while (<$rd>) { if (m{^M 100644 :(\d+) (${h}{2}/${h}{38})}o) { my ($mark, $path) = ($1, $2); $D{$path} = $mark; + if ($last && $last ne 'm') { + $w->print("D $last\n") or $im->wfail; + } $w->print("M 100644 :$mark m\n") or $im->wfail; + $last = 'm'; next; } if (m{^D (${h}{2}/${h}{38})}o) { my $mark = delete $D{$1}; defined $mark or die "undeleted path: $1\n"; - $w->print("M 100644 :$mark _/D\n") or $im->wfail; + if ($last && $last ne 'd') { + $w->print("D $last\n") or $im->wfail; + } + $w->print("M 100644 :$mark d\n") or $im->wfail; + $last = 'd'; next; } if (m{^from (:\d+)}) { @@ -116,6 +125,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; }