subversion的三种外挂系统

来源:互联网 发布:rimworld mac下载 编辑:程序博客网 时间:2024/05/16 18:16
  下载LOFTER我的照片书  |
一、问题描述
今天CDN某个产品编译的时候,在rhel5.3_64上失败了,检查原因发现是,脚本执行svn update的时候报错了,如下
[root@localhost tags_info]# svn update
subversion/libsvn_ra/ra_loader.c:470: (apr_err=170000)
svn: Unrecognized URL scheme for 'http://10.10.5.46/MDN_Code/01_Trunk/02_Module/tags_version/Commonsdk'

二、原因:
出现这个问题的时候我觉得很奇怪,因为在使用其他svn命令,如svn info等都是正常的,但是所有需要远程访问仓库的命令,如svn up、svn export等都不行,找了很久原因,最终发现直接原因是subversion的lib库缺少ra_dav.so库文件,根本原因是我前几天安装subversion1.6.11时缺少一个依赖包:neno,
neno的作用是:neon is an HTTP and WebDAV client library, with a C interface  Featuring,而我们目前对外提供的svn服务都是基于http协议,所以当我在此机器上使用http协议去访问
http://10.10.5.46/MDN_Code/01_Trunk/02_Module/tags_version/Commonsdk时,提示Unrecognized URL scheme 

三、解决方法:
下载neon-0.25.5.tar.gz
tar -xvzf neon-0.25.5.tar.gz
[root@localhost tags_info]#cp -rf neon-0.25.5  /home/install/subversion-1.6.11/neon
注意:此处neon要和configure,Makefile在同一个文件夹下,而且名字也要正确

重新编译subversion
[root@localhost subversion-1.6.11]#./configure --prefix=/usr/local/subversion-1.6.11  && make && makeinstall


四、验证效果:
未安装neon之前的subversion的lib库,无neon文件
[root@localhost lib]# ls
libsvn_client-1.a         libsvn_fs-1.a              libsvn_ra-1.a               libsvn_repos-1.a
libsvn_client-1.la        libsvn_fs-1.la             libsvn_ra-1.la              libsvn_repos-1.la
libsvn_client-1.so        libsvn_fs-1.so             libsvn_ra-1.so              libsvn_repos-1.so
libsvn_client-1.so.0      libsvn_fs-1.so.0           libsvn_ra-1.so.0            libsvn_repos-1.so.0
libsvn_client-1.so.0.0.0  libsvn_fs-1.so.0.0.0       libsvn_ra-1.so.0.0.0        libsvn_repos-1.so.0.0.0
libsvn_delta-1.a          libsvn_fs_fs-1.a           libsvn_ra_local-1.a         libsvn_subr-1.a
libsvn_delta-1.la         libsvn_fs_fs-1.la          libsvn_ra_local-1.la        libsvn_subr-1.la
libsvn_delta-1.so         libsvn_fs_fs-1.so          libsvn_ra_local-1.so        libsvn_subr-1.so
libsvn_delta-1.so.0       libsvn_fs_fs-1.so.0        libsvn_ra_local-1.so.0      libsvn_subr-1.so.0
libsvn_delta-1.so.0.0.0   libsvn_fs_fs-1.so.0.0.0    libsvn_ra_local-1.so.0.0.0  libsvn_subr-1.so.0.0.0
libsvn_diff-1.a           libsvn_fs_util-1.a         libsvn_ra_svn-1.a           libsvn_wc-1.a
libsvn_diff-1.la          libsvn_fs_util-1.la        libsvn_ra_svn-1.la          libsvn_wc-1.la
libsvn_diff-1.so          libsvn_fs_util-1.so        libsvn_ra_svn-1.so          libsvn_wc-1.so
libsvn_diff-1.so.0        libsvn_fs_util-1.so.0      libsvn_ra_svn-1.so.0        libsvn_wc-1.so.0
libsvn_diff-1.so.0.0.0    libsvn_fs_util-1.so.0.0.0  libsvn_ra_svn-1.so.0.0.0    libsvn_wc-1.so.0.0.0

安装neon之后的subversion的lib库,明显增加libsvn_ra_neon文件
[root@localhost lib]# ls libsvn_ra_neon
libsvn_ra_neon-1.a         libsvn_ra_neon-1.so        libsvn_ra_neon-1.so.0.0.0  
libsvn_ra_neon-1.la        libsvn_ra_neon-1.so.0      

执行svn up操作,明显成功
[root@localhost tags_info]# svn up
At revision 24322.
[root@localhost tags_info]# 

五、稍微扩展
网上资料:Subversion 使用外掛系統來存取檔案庫. 目前有三個這樣的外掛: ra_local 可以存取本地檔案庫, ra_dav 可以透過 WebDAV 存取檔案庫, 而 ra_svn 可以透過 svnserve 伺服器來進行本地或遠端的存取。
我认为简单的说就是:
1、ra_svn模块 : 支持svn://URL 访问配置库
2、ra_local模块 : 支持file://URL 访问配置库file:///G:/Repos_Code/MDN_Code/03_Tags
3、ra_dav模块: 支持http://URL 访问配置库 【就是ra_neon,本次出问题的地方,不过现在解决啦】

#### 以上解决方法只适用linux的subversion的源码安装方式,windows的没有这么麻烦######

2013.11.22
0 0
原创粉丝点击