服务器上不清楚谁编译了一个svn,checkout项目的时候,总是报错
svn: Unrecognized URL scheme for "http://xxxxxx"
从网上看到有人也提到了类似的问题,解决办法是重新编译subversion。

正常情况下,执行svn --version输出应该是:
svn,版本 1.4.0 (r21228)
   编译于 Mar 21 2008,23:23:48

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

可使用以下的档案库存取 (RA) 模块:

* ra_dav : 通过WebDAV (DeltaV) 协议访问档案库的模块。
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : 使用svn网络协议访问档案库的模块。
- handles 'svn' scheme
* ra_local : 访问本地磁盘的档案库模块。
- handles 'file' scheme
但是现在没有了×××背景的部分。

重新编译的时候下载的subversion的源代码是1.4.0,同时需要一个配套的neon-0.25.5,可以从http://www.webdav.org/neon/neon-0.25.5.tar.gz下载。
下载了neon之后,可以将neno解压到subversion的源码目录中,需要将neon解压之后的目录重新命名为neon。或者自行编译neon,configure subversion的时候制定neon的目录就可以了。
我当时做的时候,是自行编译了neon,但是编译subversion的时候出错了,提示:
libneon.a(ne_request.o): relocation R_X86_64_32 against `a local symbol'

从Google中搜了一下,可能是因为服务器版本的问题。难道是64位导致的?不太清楚
不过找到了解决的办法,地址是:
http://joemaller.com/2008/01/29/how-to-install-subversion-on-a-shared-host/
可能是先前编译的apr,apr-util,neon的参数不对的缘故。按照上面链接中的内容给出的编译参数(如下):
cd apr
./configure --enable-shared --prefix=$HOME
make && make install

cd ../apr-util
./configure --enable-shared --prefix=$HOME \
     --with-expat=builtin --with-apr=$HOME \
     --without-berlekey-db
make && make install

cd ../neon
./configure --enable-shared --prefix=$HOME \
     --with-libs=$HOME --with-ssl
make && make install
将自己当时编译的时候,缺少的参数加上了,之后再编译subversion,一切就都好了。

执行svn --version的时候,提示信息也正确了。从google code上co了一个项目,一切正常。

 

转自http://hi.baidu.com/%C0%EE%D3%F1%B1%B1/blog/item/6aefe27f0634d00c28388a3f.html