X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=script%2Fpublic-inbox-convert;h=56ac44f51db82c715fb8230c098848c89a96710d;hp=f58bf27b68e26b6d524340531120799ce08a580e;hb=c34a83286234ea1e876ebdf92a33744272bb6f4e;hpb=0321a1a9e7ae9c9d878d547ee67659ef8aa95689 diff --git a/script/public-inbox-convert b/script/public-inbox-convert index f58bf27b..56ac44f5 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+)}) {