+ if ($self->read_svm_props(($ra->get_dir('', $r))[2])) {
+ return $ra;
+ }
+
+ if ($ra->{repos_root} eq $self->{url}) {
+ die @err, map { " $self->{url}/$_\n" } @tried_a, "\n";
+ }
+
+ # nope, make sure we're connected to the repository root:
+ my $ok;
+ my @tried_b;
+ $path = $ra->{svn_path};
+ $path =~ s#/?[^/]+$##; # we already tried this one above
+ $ra = Git::SVN::Ra->new($ra->{repos_root});
+ while (length $path) {
+ $ok = $self->read_svm_props(($ra->get_dir($path, $r))[2]);
+ last if $ok;
+ $path =~ s#/?[^/]+$## && push @tried_b, $path;
+ }
+ $ok = $self->read_svm_props(($ra->get_dir('', $r))[2]) unless $ok;
+ if (!$ok) {
+ die @err, map { " $self->{url}/$_\n" } @tried_a, "\n",
+ map { " $ra->{url}/$_\n" } @tried_b, "\n"
+ }
+ Git::SVN::Ra->new($self->{url});