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
@ -772,30 +772,8 @@ sub commit {
|
|||||||
$xtag =~ tr/_/\./ if ( $opt_u );
|
$xtag =~ tr/_/\./ if ( $opt_u );
|
||||||
$xtag =~ s/[\/]/$opt_s/g;
|
$xtag =~ s/[\/]/$opt_s/g;
|
||||||
|
|
||||||
my $pid = open2($in, $out, 'git-mktag');
|
system('git-tag', $xtag, $cid) == 0
|
||||||
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")
|
|
||||||
or die "Cannot create tag $xtag: $!\n";
|
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;
|
print "Created tag '$xtag' on '$branch'\n" if $opt_v;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user