We have a workaround for the reparent function not working correctly on the SVN native protocol servers. This workaround opens a new connection (SVN::Ra object) to the new URL/directory. Since libsvn appears limited to only supporting one connection at a time, this workaround invalidates the Git::SVN::Ra object that is $self inside gs_fetch_loop_common(). So we need to restart that connection once all the fetching is done for each loop iteration to be able to run get_log() successfully. Signed-off-by: Eric Wong <normalperson@xxxxxxxx> --- Gerrit Pape <pape@xxxxxxxxxxx> wrote: > On Wed, Jul 04, 2007 at 02:07:42PM -0700, Eric Wong wrote: > > Although this fixes blocking reads, this does *not* fix the > > "Malformed network data" issue, which has been around for a > > while... > > > > I'll try to find time to fix the "Malformed network data" bug > > in a few days time, but it's not fatal (just restart git-svn, > > this error happens at a point where it's not possible to have > > a corrupted import). > > Hi, this still is a problem we face on Debian with 1.5.3-rc3 > http://bugs.debian.org/436142 > http://bugs.debian.org/430091 > > I'm sorry, I didn't manage to provide a patch. Sorry for the latency again. git-svn.perl | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/git-svn.perl b/git-svn.perl index d3c8cd0..7df4098 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -3175,6 +3175,7 @@ sub gs_do_switch { $reparented = 1; } else { $ra = Git::SVN::Ra->new($full_url); + $self->{-invalid} = 1; } } $ra ||= $self; @@ -3310,6 +3311,11 @@ sub gs_fetch_loop_common { $min = $max + 1; $max += $inc; $max = $head if ($max > $head); + if ($self->{-invalid}) { + my $ra_url = $self->{url}; + $self = undef; + $self = Git::SVN::Ra->new($ra_url); + } } } -- Eric Wong - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html