svn import: avoid reconnecting

Perl's eval() sets $@ to empts, not undef, when it succeeds.
That caused excessive reconnect attempts.

Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
This commit is contained in:
Matthias Urlichs 2005-10-10 14:14:44 +02:00
Родитель 37dcf6de60
Коммит 8cd4177d5e
1 изменённых файлов: 6 добавлений и 5 удалений

Просмотреть файл

@ -100,8 +100,6 @@ sub new {
$self->{'fullrep'} = $repo;
$self->conn();
$self->{'lines'} = undef;
return $self;
}
@ -112,6 +110,7 @@ sub conn {
die "SVN connection to $repo: $!\n" unless defined $s;
$self->{'svn'} = $s;
print STDERR "*** SVN *** $s ***\n";
$self->{'repo'} = $repo;
$self->{'maxrev'} = $s->get_latest_revnum();
}
@ -124,13 +123,15 @@ sub file {
DIR => File::Spec->tmpdir(), UNLINK => 1);
print "... $rev $path ...\n" if $opt_v;
eval { $self->{'svn'}->get_file($path,$rev,$fh); };
if (defined $@ and $@ !~ /Attempted to get checksum/) {
my $s = $self->{'svn'};
print STDERR "*** GET *** $s ***\n";
eval { $s->get_file($path,$rev,$fh); };
if ($@ and $@ !~ /Attempted to get checksum/) {
# retry
$self->conn();
eval { $self->{'svn'}->get_file($path,$rev,$fh); };
};
return () if defined $@ and $@ !~ /Attempted to get checksum/;
return () if $@ and $@ !~ /Attempted to get checksum/;
die $@ if $@;
close ($fh);