svn import: Fix tagging.
Tagging was 100% broken. :-/ Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
This commit is contained in:
parent
62d72e4b70
commit
f02b3eba7f
@ -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/$tag")
|
open(C,">$git_dir/refs/tags/$dest") and
|
||||||
or die "Cannot create tag $tag: $!\n";
|
print C ("$tagobj\n") and
|
||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user