到www.collab.net/developers/tools/下载client和server端:
CollabNetSubversion-client-1.6.6-1.i386.rpm
CollabNetSubversion-server-1.6.6-1.i386.rpm
2.安装
安装Server端之前需要安装client端。
rpm -Uvh CollabNetSubversion-client-1.6.6-1.i386.rpm
rpm -Uvh CollabNetSubversion-server-1.6.6-1.i386.rpm
3.配置
创建一个Repository目录:
mkdir -p /opt/svn/repos
运行配置脚本:
/opt/CollabNet_Subversion/bin/Configure-CollabNet-Subversion
根据提示创建项目库、用户等
配置完成后,自动启动SVN服务器。
用户名存储位置:/etc/opt/CollabNet_Subversion/conf/svnserve_auth_file
重启服务:
service collabnet_subversion restart
4.访问
svn://localhost/YOUR-REPOS-NAME (基于svnserver)
或者http://localhost/YOUR-REPOS-NAME (基于Apache)
5.与系统原有Apache集成
由于Collabnet的SVN自带了一个apache server,如果要使用系统原有的Apache server,可以在配置时选择svnserve方式,然后手工配置原来的Apache与SVN集成。
RHEL 使用的是httpd-2.2.3-11.el5_1.3.i386.rpm,Collabnet的官方网站提到Collabnet SVN不支持与RHEL原有Apache进行集成(http://subversion.open.collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=313586)不过有一位中国的兄弟回复可以通过加入Collabnet的库目录到系统库搜索目录来解决。
1)复制SVN模块
复制/opt/CollabNet_Subversion/modules/目录下的mod_authz_svn.so和mod_dav_svn.so 到/usr/lib/httpd/modules
2)修改httpd.conf文件
#vi /etc/httpd/conf/httpd.conf
增加:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /opt/svn/repos/
AuthType Basic
AuthName "Subversion"
AuthUserFile /opt/svn/passwdfile
#AuthzSVNAccessFile /opt/svn/accessfile
Require valid-user
</Location>
3)把Collabnet的库目录加入系统配置
此步骤主要解决启动Apache时出现如下错误。
Starting httpd: httpd: Syntax error on line 995 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_dav_svn.so into server: /opt/CollabNet_Subversion/lib/libsvn_subr-1.so.0: undefined symbol: apr_memcache_add_server
#vi /etc/ld.so.conf
增加一行:
/opt/CollabNet_Subversion/lib
#ldconfig
注:增加CollabNet lib后出现了Xwin启动出错:
nautilus can't be used now Nautilus can't be used now, due to an unexpected error from Bonobo when attempting to register the file manager view server.
网上说这是因为CollabNet lib下的libz.*库所引起的。可以使用另外一种方法,修改/etc/init.d/httpd脚本,增加红色部分:
start() {
echo -n $"Starting $prog: "
check13 || exit 1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/CollabNet_Subversion/lib
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
4)创建用户认证文件
例如增加2个用户test和test1,使用命令:
#htpasswd -cm /opt/svn/passwdfile test
New password:
Re-type new password:
Adding password for user test
#htpasswd -m /opt/svn/passwdfile test1
New password:
Re-type new password:
Adding password for user test1
注意:创建密码文件需要带-c参数, -m 表示使用更安全的MD5算法
6.问题
.使用http方式无法创建新文件夹,而使用svn://协议没有问题,错误信息:
Can't open file 'svn/db/txn-current-locks':permission denied
进入svn的reposity所在的目录,
# chown csvn:apache * -R
# chmod -R 770 *
7..其他SVN工具
1) SVNManager: http://svnmanager.org/
支持的功能: