Browse Source

svn import: add eval()

Trying to downlaod a file that's really a subdirectory doesn't work too well.

Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
maint
Matthias Urlichs 19 years ago
parent
commit
2b5e63d1b4
  1. 16
      git-svnimport.perl

16
git-svnimport.perl

@ -121,12 +121,15 @@ sub file { @@ -121,12 +121,15 @@ sub file {
my ($fh, $name) = tempfile('gitsvn.XXXXXX',
DIR => File::Spec->tmpdir(), UNLINK => 1);

$self->{'svn'}->get_file($path,$rev,$fh) or do {
print "... $rev $path ...\n" if $opt_v;
eval { $self->{'svn'}->get_file($path,$rev,$fh); };
if (defined $@ and $@ !~ /Attempted to get checksum/) {
# retry
$self->conn();
$self->{'svn'}->get_file($path,$rev,$fh)
or die "$rev: No file $path at $rev\n";
eval { $self->{'svn'}->get_file($path,$rev,$fh); };
};
return () if defined $@ and $@ !~ /Attempted to get checksum/;
die $@ if $@;
close ($fh);

return ($name, $res);
@ -308,7 +311,8 @@ sub get_file($$$) { @@ -308,7 +311,8 @@ sub get_file($$$) {
}

# now get it
my ($name, $res) = $svn->file($svnpath,$rev);
my ($name, $res) = eval { $svn->file($svnpath,$rev); };
return () unless defined $name;

open my $F, '-|', "git-hash-object -w $name"
or die "Cannot create object: $!\n";
@ -343,7 +347,9 @@ sub commit { @@ -343,7 +347,9 @@ sub commit {
my($author_name,$author_email,$dest);
my(@old,@new);

if ($author =~ /^(.*?)\s+<(.*)>$/) {
if (not defined $author) {
$author_name = $author_email = "unknown";
} elsif ($author =~ /^(.*?)\s+<(.*)>$/) {
($author_name, $author_email) = ($1, $2);
} else {
$author =~ s/^<(.*)>$/$1/;

Loading…
Cancel
Save