Re: git svn fetch spewing warnings

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: git svn fetch spewing warnings

From: Seth Falcon <hidden>
Date: 2016-06-15 22:43:01

Eric Wong [off-list ref] writes:
We now try harder to find previous versions of the path we're tracking.
I've also changed the window from 1000 to 100 revisions, so the
warning message spewing is 10 times more frequent.  Don't worry, though
it's harmless :)
Not a big deal.  But perhaps those warnings could go to a log file of
some kind and then a summary at the end could say:

  There were 500 warning messages, check git-svn-fetch-TIMESTAMP.log
  for details.

And to push a bit further, why do I care about these messages.  What
action might I take based on them?  I almost didn't discover that the
warnings were harmless because I C-c'd out a few times thinking that
something was really wrong before deciding to just let it run.

+ seth

-- 
Seth Falcon

[PATCH] git-svn: avoid respewing similar error messages for missing paths

From: Eric Wong <hidden>
Date: 2016-06-15 22:43:02

We ignore errors if the path we're tracking did not exist for
a particular revision range, but we still print out warnings
telling the user about that.

As pointed out by Seth Falcon, this amounts to a lot of warnings
that could confuse and worry users.  I'm not entirely comfortable
completely silencing the warnings, but showing one warning per
path that we track should be reasonable.

Signed-off-by: Eric Wong <redacted>
---
 git-svn.perl |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index adc976c..d307d43 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -2843,8 +2843,7 @@ package Git::SVN::Ra;
 use vars qw/@ISA $config_dir $_log_window_size/;
 use strict;
 use warnings;
-my ($can_do_switch);
-my $RA;
+my ($can_do_switch, %ignored_err, $RA);
 
 BEGIN {
 	# enforce temporary pool usage for some simple functions
@@ -3216,9 +3215,16 @@ sub skip_unknown_revs {
 	# 175007 - http(s):// (this repo required authorization, too...)
 	#   More codes may be discovered later...
 	if ($errno == 175007 || $errno == 175002 || $errno == 160013) {
-		warn "W: Ignoring error from SVN, path probably ",
-		     "does not exist: ($errno): ",
-		     $err->expanded_message,"\n";
+		my $err_key = $err->expanded_message;
+		# revision numbers change every time, filter them out
+		$err_key =~ s/\d+/\0/g;
+		$err_key = "$errno\0$err_key";
+		unless ($ignored_err{$err_key}) {
+			warn "W: Ignoring error from SVN, path probably ",
+			     "does not exist: ($errno): ",
+			     $err->expanded_message,"\n";
+			$ignored_err{$err_key} = 1;
+		}
 		return;
 	}
 	die "Error from SVN, ($errno): ", $err->expanded_message,"\n";
-- 
Eric Wong
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help