- my $data = $cvs->file($fn,$rev);
- print "".($init ? "New" : "Update")." $fn: ".length($data)." bytes.\n" if $opt_v;
- mkpath(dirname($fn),$opt_v);
- open(F,"> ./$fn")
- or die "Cannot create '$fn': $!\n";
- print F $data
- or die "Cannot write to '$fn': $!\n";
- close(F)
- or die "Cannot write to '$fn': $!\n";
- chmod(pmode($cvs->{'mode'}), $fn);
- push(@new,$fn); # may be resurrected!
+ my ($tmpname, $size) = $cvs->file($fn,$rev);
+ print "".($init ? "New" : "Update")." $fn: $size bytes.\n" if $opt_v;
+ open my $F, '-|', "git-write-blob $tmpname"
+ or die "Cannot create object: $!\n";
+ my $sha = <$F>;
+ chomp $sha;
+ close $F;
+ unlink($tmpname);
+ my $mode = pmode($cvs->{'mode'});
+ push(@new,[$mode, $sha, $fn]); # may be resurrected!