Что я сделал, так это изменил Perl-скрипт git-cvsimport. Я изменил метод update_index()
с:
sub update_index (\@\@) {
my $old = shift;
my $new = shift;
open(my $fh, '|-', qw(git update-index -z --index-info))
or die "unable to open git update-index: $!";
print $fh
(map { "0 0000000000000000000000000000000000000000\t$_\0" }
@$old),
(map { '100' . sprintf('%o', $_->[0]) . " $_->[1]\t$_->[2]\0" }
@$new)
or die "unable to write to git update-index: $!";
close $fh
or die "unable to write to git update-index: $!";
$? and die "git update-index reported error: $?";
}
Кому:
sub update_index (\@\@) {
my $old = shift;
my $new = shift;
open(my $fh, '|-', qw(git update-index -z --index-info))
or die "unable to open git update-index: $!";
print $fh
(map { "0 0000000000000000000000000000000000000000\t$cvs_tree/$_\0" }
@$old),
(map { '100' . sprintf('%o', $_->[0]) . " $_->[1]\t$cvs_tree/$_->[2]\0" }
@$new)
or die "unable to write to git update-index: $!";
close $fh
or die "unable to write to git update-index: $!";
$? and die "git update-index reported error: $?";
}
(Обратите внимание на добавление переменной $cvs_tree
.)
Работает как шарм. Выполнить:
perl git-cvsimport -v ... (rest of regular git-cvsimport arguments)