From f7c3fc4a269ad4f12cc9d97d70e46ba3d5dfdb79 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 29 Jan 2007 18:34:55 -0800 Subject: [PATCH] git-svn: reinstate the default SVN error handler after using get_log We don't need our own error handler for other operations. Also add a message about the successfully do_switch or do_update in follow-parent for debugging do_switch failures with svn:// and svn+ssh:// connections. Signed-off-by: Eric Wong --- git-svn.perl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/git-svn.perl b/git-svn.perl index e387504b88..bbdaeea98a 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -1169,6 +1169,7 @@ sub find_parent_branch { 1, $ed) or die "SVN connection failed somewhere...\n"; } + print STDERR "Successfully followed parent\n"; $ed->{new_fetch} = 1; return $self->make_log_entry($rev, [$parent], $ed); } @@ -2295,9 +2296,6 @@ sub gs_fetch_loop_common { my ($self, $base, $head, @gs) = @_; my $inc = 1000; my ($min, $max) = ($base, $head < $base + $inc ? $head : $base + $inc); - my $err_handler = $SVN::Error::handler; - my $err; - $SVN::Error::handler = sub { ($err) = @_; skip_unknown_revs($err); }; my @paths = @gs == 1 ? ($gs[0]->{path}) : (''); foreach my $gs (@gs) { if (my $last_commit = $gs->last_commit) { @@ -2307,8 +2305,16 @@ sub gs_fetch_loop_common { } while (1) { my @revs; + my $err; + my $err_handler = $SVN::Error::handler; + $SVN::Error::handler = sub { + ($err) = @_; + skip_unknown_revs($err); + }; $self->get_log(\@paths, $min, $max, 0, 1, 1, sub { push @revs, [ dup_changed_paths($_[0]), $_[1] ]; }); + $SVN::Error::handler = $err_handler; + if (! @revs && $err && $max >= $head) { print STDERR "Branch probably deleted:\n ", $err->expanded_message, @@ -2335,7 +2341,6 @@ sub gs_fetch_loop_common { $max += $inc; $max = $head if ($max > $head); } - $SVN::Error::handler = $err_handler; } sub minimize_url {