svn import: Fix tagging.

Tagging was 100% broken. :-/

Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
This commit is contained in:
Matthias Urlichs 2005-10-10 14:42:59 +02:00
parent 62d72e4b70
commit f02b3eba7f

View File

@ -122,8 +122,7 @@ sub file {
DIR => File::Spec->tmpdir(), UNLINK => 1); DIR => File::Spec->tmpdir(), UNLINK => 1);
print "... $rev $path ...\n" if $opt_v; print "... $rev $path ...\n" if $opt_v;
my $s = $self->{'svn'}; eval { $self->{'svn'}->get_file($path,$rev,$fh); };
eval { $s->get_file($path,$rev,$fh); };
if ($@ and $@ !~ /Attempted to get checksum/) { if ($@ and $@ !~ /Attempted to get checksum/) {
# retry # retry
$self->conn(); $self->conn();
@ -544,14 +543,14 @@ sub commit {
waitpid($pid,0); waitpid($pid,0);
die "Error running git-commit-tree: $?\n" if $?; die "Error running git-commit-tree: $?\n" if $?;
if(defined $dest) { if(not defined $dest) {
print "... no known parent\n" if $opt_v;
} elsif(not $tag) {
print "Writing to refs/heads/$dest\n" if $opt_v; print "Writing to refs/heads/$dest\n" if $opt_v;
open(C,">$git_dir/refs/heads/$dest") and open(C,">$git_dir/refs/heads/$dest") and
print C ("$cid\n") and print C ("$cid\n") and
close(C) close(C)
or die "Cannot write branch $dest for update: $!\n"; or die "Cannot write branch $dest for update: $!\n";
} else {
print "... no known parent\n" if $opt_v;
} }
$branches{$branch}{"LAST"} = $cid; $branches{$branch}{"LAST"} = $cid;
$branches{$branch}{$revision} = $cid; $branches{$branch}{$revision} = $cid;
@ -564,33 +563,30 @@ sub commit {
$last_rev = "-" if %$changed_paths; $last_rev = "-" if %$changed_paths;
# the tag was 'complex', i.e. did not refer to a "real" revision # the tag was 'complex', i.e. did not refer to a "real" revision
$tag =~ tr/_/\./ if $opt_u; $dest =~ tr/_/\./ if $opt_u;
my $pid = open2($in, $out, 'git-mktag'); my $pid = open2($in, $out, 'git-mktag');
print $out ("object $cid\n". print $out ("object $cid\n".
"type commit\n". "type commit\n".
"tag $tag\n". "tag $dest\n".
"tagger $author_name <$author_email>\n") and "tagger $author_name <$author_email>\n") and
close($out) close($out)
or die "Cannot create tag object $tag: $!\n"; or die "Cannot create tag object $dest: $!\n";
my $tagobj = <$in>; my $tagobj = <$in>;
chomp $tagobj; chomp $tagobj;
if ( !close($in) or waitpid($pid, 0) != $pid or if ( !close($in) or waitpid($pid, 0) != $pid or
$? != 0 or $tagobj !~ /^[0123456789abcdef]{40}$/ ) { $? != 0 or $tagobj !~ /^[0123456789abcdef]{40}$/ ) {
die "Cannot create tag object $tag: $!\n"; die "Cannot create tag object $dest: $!\n";
} }
open(C,">$git_dir/refs/tags/$dest") and
open(C,">$git_dir/refs/tags/$tag") print C ("$tagobj\n") and
or die "Cannot create tag $tag: $!\n";
print C "$tagobj\n"
or die "Cannot write tag $tag: $!\n";
close(C) close(C)
or die "Cannot write tag $tag: $!\n"; or die "Cannot create tag $branch: $!\n";
print "Created tag '$tag' on '$branch'\n" if $opt_v; print "Created tag '$dest' on '$branch'\n" if $opt_v;
} }
} }