Browse Source

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>
maint
Elvis Pranskevichus 18 years ago committed by Junio C Hamano
parent
commit
5c08931dfc
  1. 26
      git-cvsimport.perl

26
git-cvsimport.perl

@ -771,31 +771,9 @@ sub commit { @@ -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…
Cancel
Save