Re: how to skip branches on git svn clone/fetch when there are errors
- From
- Daniele Segato <daniele.bilug@gmail.com>
- Date
- Sep 7, 2009, 13:53 UTC
- Message-ID
- <9accb4400909070653s4ddb07e4k54dde8d801b4b5e4@mail.gmail.com>
- In-Reply-To
- <9accb4400909070634oee46b78g9270586a2b0eb4b9@mail.gmail.com>
On Mon, Sep 7, 2009 at 3:34 PM, Daniele Segato<daniele.bilug@gmail.com> wrote:
Show 10 quoted lines
> + $SVN::Error::handler = sub {
> + (my $err) = @_;
> + my $errno = $err->apr_err();
> + my $err_key = $err->expanded_message;
> + if ($errno == 175007) {
> + warn "W: Ignoring error from SVN, path probably ",
> + "does not exist: ($errno): ",
> + $err->expanded_message,"\n";
> + }
> + return;ups.. this should have been return inside the if and die otherwise
and the error is 170001 (wrong copy/paste)
please ignore the patch I posted before
this is the "right" one:
From a17dfb0e268e11ce70587ccb48c359348f22ad99 Mon Sep 17 00:00:00 2001 From: Daniele Segato <daniele.bilug@gmail.com> Date: Mon, 7 Sep 2009 15:30:14 +0200 Subject: [PATCH] Ignore err:170001 authorizationfailed on checkpath
I don't know if this is the best solution to solve the issue but it does let me download the repo skipping the problematics paths --- git-svn.perl | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl index a366c89..80f958d 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -3756,7 +3756,24 @@ sub check_path { return $cache->{data}->{$path}; } my $pool = SVN::Pool->new; + my $err_handler = $SVN::Error::handler; + $SVN::Error::handler = sub { + (my $err) = @_; + my $errno = $err->apr_err(); + my $err_key = $err->expanded_message; + if ($errno == 170001) { + warn "W: Ignoring error from SVN, path probably ", + "does not exist: ($errno): ", + $err->expanded_message,"\n"; + return; + } + die "Error from SVN, ($errno): ", $err->expanded_message,"\n"; + }; + my $t = $self->SUPER::check_path($path, $r, $pool); + + $SVN::Error::handler = $err_handler; + $pool->clear; if ($r != $cache->{r}) { %{$cache->{data}} = ();
-- 1.5.6.5