subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。
svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据(jijian91在搞LDAP时就深受其害,没法根治),所以还是FSFS方式更安全一点。
1. svn服务器安装
A.yum安装
yum install subversion
B.tar包安装
操作系统: Redhat Linux AS4
获取svn安装包
最新版本subversion可以在http://subversion.tigris.org/getting.html 下载。
编译svn
以root用户登录。
将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器。
tar xfvz subversion-1.4.0.tar.gz
tar xfvz subversion-deps-1.4.0.tar.gz
cd subversion-1.4.0
./configure –prefix=/opt/svn –without-berkeley-db –with-zlib
(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db)
make clean
make
make install
vi /etc/profile,在/etc/profile最后加入:
PATH=$PATH:/opt/svn/bin
export PATH
C.svn测试
svnserve –version
如果显示如下,svn安装成功:
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/).
The following repository back-end (FS) modules are available:
* fs_base : 模块与伯克利数据库(Berkeley DB)档案库一起工作。
* fs_fs : 模块与纯文本文件(FSFS)档案库一起工作。
2. svn配置
建立svn版本库目录
可建多个:
mkdir -p /opt/svn/repos
建立svn版本库
svnadmin create /opt/svn/repos
修改svn版本库配置文件
版本库1:
vi /opt/svn/repos/conf/svnserve.conf
内容修改为:
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd
注意:所有的行都必须顶格,否则报错。
建议:为了防止不必要的错误,建议你直接用我上面的内容覆盖掉文件原来的内容
配置允许访问的svn用户
vi /opt/svn/conf/pwd.conf
注意:对用户配置文件的修改立即生效,不必重启svn。
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]
alan = password
king = hello
注意
A. 一定要去掉[users]前面的#,否则svn只能以匿名用户登录,客户端不会出现登录窗口,除非你的anon不为none,否则将返回一个错误。
B. 这里的密码都是没有加密的
3. 启动svn
建立启动svn的用户
useradd svn
passwd svn
根据提示为用户svn设置密码
允许用户svn访问版本库
chown -R svn:svn /opt/svn
启动svn
su - svn -c "svnserve -d --listen-port 9900 -r /opt/svn"
其中:
su - svn表示以用户svn的身份启动svn
-d表示以daemon方式(后台运行)运行
--listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
-r /opt/svn指定根目录是/opt/svn
检查:
ps aux|grep svnserve
如果显示如下,即为启动成功:
svn 1899 0.0 0.1 10564 760 ? Ss 01:38 0:00 svnserve -d --listen-port 9900 -r /usr/hmsroot/svn