【转】svn http://提示svn: Unrecognized URL scheme错误
转自:http://blog.csdn.net/l241002209/article/details/8547943
SVN这个东西虽然不好用(当然也是因为自身没有重视,但是谁让GIT这么好用呢…!),但是公司暂时用的还是SVN,因此还是不得不每天应对它。
由于一直用 phpstorm
因此SVN的操作都是GUI,非常方便(推荐…!),但是今天由于有个需求我需要写个命令让SVN自动更新,因此需要在终端中直接使用SVN的命令行工具,但是…关键时刻就给我掉链子了!
在终端中输入:
1
|
|
然后就悲剧了,提示项目的svn是1.7及以上的,我的svn版本太低!表示记得前一阵子刚刚更新过了的。用 svn version
一看,果然是1.6.
但是1.7确实是记得手动更新过的,不甘心,在目录中找,果然在 /usr/local/bin/
中找到了1.7的svn版本,然后在 /usr/bin/
中找到了1.6版本的svn!
系统默认先调用 /usr/bin
中的!
于是定位到原因,估计是升级系统到 moutain lion
的时候,又自动在 /usr/bin
中给我安装了系统自带的 1.6
的svn,于是覆盖了我的1.7的…悲剧!
于是…最简单的方法,就是把1.7的覆盖掉 local/bin
中的1.6版本!覆盖完之后,在终端中查看,果然 version
变成1.7了,于是继续 svn update
,结果接续报错:
1
|
|
F******k!
好吧,Google之,得到答案如下: 答案
没细看…反正SVN要使用 http
类型的仓库需要某块支持,然后报这个错误意味着它可能找不到一个名为 neon
的模块了。因此需要重新编译安装svn,告诉它这个模块在哪里。
因此做法是:
- 下载最新的 neon ,然后
./configure
,make
,make install
安装好 - 配置SVN源码 :
1
|
|
- 编译安装:
make
,make install
在配置SVN源码之前,细心的我还是发现了我的路径里面不存在/usr/local/apache2
这个目录,看了下面的评论,这个应该是在你要配置一台svn服务器时使用,因此像我这种情况,就直接使用
1
|
|
在linux下安装完subversion1.4+apache2.2.4之后,能够正确的增加库。但是在使用svn http://...的时候提示svn: Unrecognized URL scheme的错误。
Subversion 使用外掛系統來存取檔案庫. 目前有三個這樣的外掛: ra_local 可以存取本地檔案庫, ra_dav 可以透過 WebDAV 存取檔案庫, 而 ra_svn 可以透過 svnserve 伺服器來進行本地或遠端的存取。當你想要在 Subversion 進行一個作業時, 用戶端會試著依 URL schema 動態載入一個外掛. file:// URL 會試著載入 ra_local, 而 http:// URL 會試著輸入 ra_dav。
执行svn --verion输出以下内容
svn,版本 1.4.3 (r23084)
编译于 Jan 26 2007,15:45:15
版权所有 (C) 2000-2007 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/
此产品包含由 CollabNet (http://www.Collab.Net/)开发的软件。
可使用以下的仓库存取 (RA) 模块:
* ra_svn : 使用svn网络协议访问仓库的模块。
- 处理“svn”方案
* ra_local : 访问本地磁盘的仓库模块。
- 处理“file”方案
确实没有发现支持ra_dav的模块。
2、./configure --help
阅读输出的内容发现了一个--with-neno的选项
--with-neon=PREFIX Determine neon library configuration based on
'PREFIX/bin/neon-config'. Default is to search for
neon in a subdirectory of the top source directory
and then to look for neon-config in $PATH.
查找neon的相关信息
http://www.webdav.org.neno
neon is an HTTP and WebDAV client library, with a C interface. Featuring
下载neon-0.25.5.tar.gz
tar -xvzf neon-0.25.5.tar.gz
cp -rf neon-0.25.5 ./subversion-1.4.2/neon
***注意:此处neon要和configure,Makefile在同一个文件夹下,而且名字也要正确。
3、重新编译subversion
./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl > conflog.txt
****注意:一定不要加--with-neon选项,不加的话,会默认在./subversion-1.4.2下查找neon-config
如果你增加了--with-neon选项,就需要写成 --with-neon=PREFIX 查看./configure --help的解释是:
Determine neon library configuration based on 'PREFIX/bin/neon-config'. Default is to searc
h for neon in a subdirectory of the top source directory and then to look for neon-config in $PATH.
make
make install
**注意:按照上面方法,安装的可执行文件在/usr/local/subversion/bin下。
需要到/usr/local/bin下增加对应的符号链接文件。
ln -S svn /usr/local/subversion/bin/svn