svn import: Fix tagging.

Tagging was 100% broken. :-/

Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
diff --git a/git-svnimport.perl b/git-svnimport.perl
index f7bf616..f977ed2 100755
--- a/git-svnimport.perl
+++ b/git-svnimport.perl
@@ -122,8 +122,7 @@
 		    DIR => File::Spec->tmpdir(), UNLINK => 1);
 
 	print "... $rev $path ...\n" if $opt_v;
-	my $s = $self->{'svn'};
-	eval { $s->get_file($path,$rev,$fh); };
+	eval { $self->{'svn'}->get_file($path,$rev,$fh); };
 	if ($@ and $@ !~ /Attempted to get checksum/) {
 	    # retry
 	    $self->conn();
@@ -544,14 +543,14 @@
 	waitpid($pid,0);
 	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;
 		open(C,">$git_dir/refs/heads/$dest") and 
 		print C ("$cid\n") and
 		close(C)
 			or die "Cannot write branch $dest for update: $!\n";
-	} else {
-		print "... no known parent\n" if $opt_v;
 	}
 	$branches{$branch}{"LAST"} = $cid;
 	$branches{$branch}{$revision} = $cid;
@@ -564,33 +563,30 @@
 		$last_rev = "-" if %$changed_paths;
 		# 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');
 		print $out ("object $cid\n".
 		    "type commit\n".
-		    "tag $tag\n".
+		    "tag $dest\n".
 		    "tagger $author_name <$author_email>\n") and
 		close($out)
-		    or die "Cannot create tag object $tag: $!\n";
+		    or die "Cannot create tag object $dest: $!\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 $tag: $!\n";
+			die "Cannot create tag object $dest: $!\n";
 		}
-		
 
-		open(C,">$git_dir/refs/tags/$tag")
-			or die "Cannot create tag $tag: $!\n";
-		print C "$tagobj\n"
-			or die "Cannot write tag $tag: $!\n";
+		open(C,">$git_dir/refs/tags/$dest") and
+		print C ("$tagobj\n") and
 		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;
 	}
 }