threads / discuss / 23354

git-svn clone fails

Subject: git-svn clone fails

## tl;dr

2 messages between Apr 6, 2010 and Apr 7, 2010.

replies: 1people: 2as markdown or json

Janne Kulmala· Apr 6, 2010, 09:28 UTC · lore

I'm trying to clone OpenTTD subversion repository using git-svn from Debian Lenny testing. Git version is 1.7.0. The clone operationg always fails at the same revision with same error message.

I am using the following command:
	git svn clone svn://svn.openttd.org/trunk openttd
Which gives this error message:

r1170 = 12fbf791d6e353346315756bf46cbbf75a325833 (refs/remotes/git-svn) Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/SVN/Core.pm line 584.

Network connection closed unexpectedly: at /usr/lib/git-core/git-svn line 5047

Is this a Debian-specific problem, or a bug in git-svn?
Janne Kulmala
Paul Bolle· Apr 7, 2010, 09:31 UTC · re: Janne Kulmala · lore

Re: git-svn clone fails

On Tue, 2010-04-06 at 12:28 +0300, Janne Kulmala wrote:
Show 13 quoted lines
> I'm trying to clone OpenTTD subversion repository using git-svn from 
> Debian Lenny testing. Git version is 1.7.0. The clone operationg always 
> fails at the same revision with same error message.
> 
> I am using the following command:
> 
> 	git svn clone svn://svn.openttd.org/trunk openttd
> 
> Which gives this error message:
> 
> r1170 = 12fbf791d6e353346315756bf46cbbf75a325833 (refs/remotes/git-svn)
> Use of uninitialized value in concatenation (.) or string at 
> /usr/lib/perl5/SVN/Core.pm line 584.

I don't do perl but this looks like a bug in subversion's perl bindings. This seems to fix it (where fix basically means something like "make sure this warning/error isn't printed again):

--- /usr/lib/perl5/SVN/Core.pm.oud 2008-08-13 18:32:32.000000000 +0200 +++ /usr/lib/perl5/SVN/Core.pm 2010-04-07 10:30:19.000000000 +0200

@@ -581,7 +581,9 @@
 
 		my $error_message = $svn_error->strerror();
 		while ($svn_error) {
-		    $error_message .= ': ' . $svn_error->message();
+                    if ($svn_error->message()) {
+		        $error_message .= ': ' . $svn_error->message();
+                    }
 				$svn_error = $svn_error->child();
 		}
 		return $error_message;

> Network connection closed unexpectedly:  at /usr/lib/git-core/git-svn 
> line 5047
>
> Is this a Debian-specific problem, or a bug in git-svn?

No, the exact same problem can be triggered in fedora rawhide too (with
git-svn-1.7.0.1-1.fc14.noarch). It seems openttd's svn server terminates
the connection after fetching (roughly) 1000 commits. (I'm not sure what
happens. I don't know how to debug perl.)

A workaround might be to enter the openttd directory you just created
and do "git svn fetch" a number of times. (I stopped after it terminated
for the third time, around commit 2600. There are over 19.500 commits in
that trunk, so that might take a while. Whether you'll end up with a
working and correct clone I can't say.)

Could it be openttd's svn server doesn't really appreciate the way
git-svn uses it (a straightforward svn checkout finished much quicker
and in one session)?

Regards,


Paul Bolle

← back to recent threads