Use git-tag in git-cvsimport
Currently git-cvsimport tries to create tag objects directly via git-mktag in a very broken way, e.g the stuff it writes into the tagger field of the tag object doesn't really resemble the GIT_COMMITTER_IDENT. This makes gitweb and possibly other tools that try to interpret tag objects to be confused about tag date and authorship. Fix this by calling git-tag instead. This also has a nice side effect of not creating the tag object but only the lightweight tag as that's the only thing CVS has anyways. Signed-off-by: Elvis Pranskevichus <el@prans.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d44c782bbd
commit
5c08931dfc
@ -771,31 +771,9 @@ sub commit {
|
||||
$xtag =~ s/\s+\*\*.*$//; # Remove stuff like ** INVALID ** and ** FUNKY **
|
||||
$xtag =~ tr/_/\./ if ( $opt_u );
|
||||
$xtag =~ s/[\/]/$opt_s/g;
|
||||
|
||||
my $pid = open2($in, $out, 'git-mktag');
|
||||
print $out "object $cid\n".
|
||||
"type commit\n".
|
||||
"tag $xtag\n".
|
||||
"tagger $author_name <$author_email>\n"
|
||||
or die "Cannot create tag object $xtag: $!\n";
|
||||
close($out)
|
||||
or die "Cannot create tag object $xtag: $!\n";
|
||||
|
||||
my $tagobj = <$in>;
|
||||
chomp $tagobj;
|
||||
|
||||
if ( !close($in) or waitpid($pid, 0) != $pid or
|
||||
$? != 0 or $tagobj !~ /^[0123456789abcdef]{40}$/ ) {
|
||||
die "Cannot create tag object $xtag: $!\n";
|
||||
}
|
||||
|
||||
|
||||
open(C,">$git_dir/refs/tags/$xtag")
|
||||
system('git-tag', $xtag, $cid) == 0
|
||||
or die "Cannot create tag $xtag: $!\n";
|
||||
print C "$tagobj\n"
|
||||
or die "Cannot write tag $xtag: $!\n";
|
||||
close(C)
|
||||
or die "Cannot write tag $xtag: $!\n";
|
||||
|
||||
print "Created tag '$xtag' on '$branch'\n" if $opt_v;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user