Hi
I’m stuck with an annoying problem.
I have an SVN server set up on a LAN server. I’m accessing it with http://ada-srp/kr/svn/trunk, it is working from browsers and windows svn clients (both Tortoise and command line client 1.6.4).
The problem is when I’m trying to do a checkout on the server itself (ada-srp) with the very same command line command as on the windows machine, I’m getting the following error:
[benyamin@ada-srp ~]$ svn checkout http://ada-srp/kr/svn/trunk/ kr_repos
svn: URL 'http://ada-srp/kr/svn/trunk' is malformed or the scheme or host or path is missing
The version of the client is 1.6.5.
This is not likely to be a networking problem, I can do wget with no problem on http://ada-srp/kr/svn/trunk from the same shell. In case of this error I don’t see any change in apache log.
Can you tell me what the problem is?
Thank you
Benyamin
[[[
/* from libsvn_ra_neon/session.c */
if (ne_uri_parse(url, uri)
|| uri->host == NULL || uri->path == NULL || uri->scheme == NULL)
{
ne_uri_free(uri);
return svn_error_createf(SVN_ERR_RA_ILLEGAL_URL, NULL,
_("URL '%s' is malformed or the "
"scheme or host or path is missing"), url);
}
]]]
> Hirschberg, Benyamin wrote on Sun, 6 Jun 2010 at 16:49 -0000:
>>
>
>> [benyamin@ada-srp ~]$ svn checkout http://ada-srp/kr/svn/trunk/ kr_repos
>> svn: URL 'http://ada-srp/kr/svn/trunk' is malformed or the scheme or host or path is missing
>
> That error message comes from neon's ne_uri_parse(). With a client using
> serf, or another version of neon, the error might disappear.
>
> [[[
> /* from libsvn_ra_neon/session.c */
> if (ne_uri_parse(url, uri)
> || uri->host == NULL || uri->path == NULL || uri->scheme == NULL)
> {
> ne_uri_free(uri);
> return svn_error_createf(SVN_ERR_RA_ILLEGAL_URL, NULL,
> _("URL '%s' is malformed or the "
> "scheme or host or path is missing"), url);
> }
> ]]]
Reading that snippet of code, I don't understand why the error would be triggered. It says it should only occur if the host, path or scheme are null. In the URL supplied by the user, it seems clear that the host is meant to be "ada-srp", the path is "/kr/svn/trunk/ kr_repos" and the scheme is "http:" so I don't see the problem.
What version of neon are you using, Benjamin?
Have you seen this?:
http://subversion.apache.org/faq.html#unrecognized-url-error
Subversion uses a plugin system to allow access to repositories.
Currently there are three of these plugins: ra_local allows access to
a local repository, ra_neon or ra_serf which allow access to a
repository via WebDAV, and ra_svn allows local or remote access via
the svnserve server. When you attempt to perform an operation in
Subversion, the program tries to dynamically load a plugin based on
the URL scheme. A `file://' URL will try to load ra_local, and an
`http://' URL will try to load ra_neon or ra_serf.
The error you are seeing means that the dynamic linker/loader can't
find the plugins to load. For `http://' access, this normally means
that you have not linked Subversion to neon or serf when compiling it
(check the configure script output and the config.log file for
information about this). It also happens when you build Subversion
with shared libraries, then attempt to run it without first running
'make install'. Another possible cause is that you ran make install,
but the libraries were installed in a location that the dynamic
linker/loader doesn't recognize. Under Linux, you can allow the
linker/loader to find the libraries by adding the library directory to
/etc/ld.so.conf and running ldconfig. If you don't wish to do this, or
you don't have root access, you can also specify the library directory
in the LD_LIBRARY_PATH environment variable.
//Ben
>
> Ryan Schmidt wrote:
>
>> On Jun 6, 2010, at 11:39, Daniel Shahaf wrote:
>>
>>> Hirschberg, Benyamin wrote on Sun, 6 Jun 2010 at 16:49 -0000:
>>>
>>>> [benyamin@ada-srp ~]$ svn checkout http://ada-srp/kr/svn/trunk/ kr_repos
>>>> svn: URL 'http://ada-srp/kr/svn/trunk' is malformed or the scheme or host or path is missing
>>>
>>> That error message comes from neon's ne_uri_parse(). With a client using
>>> serf, or another version of neon, the error might disappear.
>>>
>>> [[[
>>> /* from libsvn_ra_neon/session.c */
>>> if (ne_uri_parse(url, uri)
>>> || uri->host == NULL || uri->path == NULL || uri->scheme == NULL)
>>> {
>>> ne_uri_free(uri);
>>> return svn_error_createf(SVN_ERR_RA_ILLEGAL_URL, NULL,
>>> _("URL '%s' is malformed or the "
>>> "scheme or host or path is missing"), url);
>>> }
>>> ]]]
>>
>> Reading that snippet of code, I don't understand why the error would be triggered. It says it should only occur if the host, path or scheme are null. In the URL supplied by the user, it seems clear that the host is meant to be "ada-srp", the path is "/kr/svn/trunk/ kr_repos" and the scheme is "http:" so I don't see the problem.
>>
>> What version of neon are you using, Benjamin?
>
> I'm using "neon 0.28.3". According to the release history it doesn't seem to be particularly old.
Well, it's 21 months old. That *is* kind of old. There have been seven releases of neon since then.
However, I'm unable to reproduce the issue on Mac OS X 10.6.3, using Subversion 1.6.11 and Neon 0.29.3, Subversion 1.6.11 and Neon 0.28.3, or Subversion 1.6.5 and Neon 0.28.3.
I searched for this error message on Google and found many posts. This one seemed possibly relevant:
https://lists.sdsc.edu/pipermail/triton-discuss/2009-July/000078.html
It suggests that a second copy of some library (neon? subversion?) somewhere else on your system, and referenced by LD_LIBRARY_PATH, could be throwing off the version of svn you're actually trying to use. Could that be? If not, search Google and see if any of the other hits seem relevant.