在RHEL6中安装和使用Subversion服务器

一、安装

1.下载:

subversion-1.6.11.tar.gz及subversion-deps-1.6.11.tar.gz

eg:
wget http://subversion.tigris.org/downloads/subversion-1.6.11.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.gz

2.安装:
tar zxvf subversion-1.6.11.tar.gz 
tar zxvf subversion-deps-1.6.11.tar.gz 
cd subversion-1.6.11/ 
./configure --prefix=/usr/local/svn 
make && make install

3.设置环境变量:
su -
PATH=$PATH:/usr/local/svn/bin
export PATH
svnserve --version

二、仓库及权限配置

1.建立svn根目录,以及一个仓库目录
mkdir -p /home/svnadmin/svnroot     #-p create parent dir, if not exists.
cd /home/svnadmin/svnroot
mkdir javasource
svnadmin create /home/svnadmin/svnroot/javasource  #创建一个仓库

2.准备测试数据
mkdir -p /home/svnadmin/svndataroot
cd /home/svnadmin/svndataroot
mkdir javasource
cd javasource
mkdir trunk
mkdir final
cd trunk
mkdir helloworld
cd helloworld
mkdir src
cd src
vi HelloWorld.java
cd /home/svnadmin/svndataroot/javasource

3.导入测试数据到仓库中
svn import ./ file:///home/svnadmin/svnroot/javasource -m "some info"
说明:导入数据后,源数据就没用了,可以删除。

4.权限配置
vi /home/svnadmin/svnroot/javasource/conf/svnserve.conf
    [general]
    anon-access = none
    auth-access = write
    password-db = passwd
    authz-db = authz
vi /home/svnadmin/svnroot/javasource/conf/authz
    [groups]
    admin=svnadmin
    pms=hymer,howard
    [javasource:/trunk]
    @admin = rw
    @pms = rw
    * =
    [javasource:/final]
    @admin = rw
    @pms = r
    * =
vi /home/svnadmin/svnroot/javasource/conf/passwd
    [users]
    svnadmin=svnadmin
    hymer=hymer
    howard=howard

三、启动及停止svn服务器

1.启动服务器
svnserve -d -r /home/svnadmin/svnroot

2.停止服务器
su -
killall svnserve

四、建议及参考

通常,一个SVN被当作一个大仓库,不仅仅用来存放code,也经常用来存放doc等资料,当然,最好是文档资料。在此,我们将code和doc都统称为仓库。
用同一个用户及权限管理文件来管理整个svn系统是比较合理和方便的,所以,建议的作法是:
1.将authz及passwd文件放在svnroot下,并改名为隐藏文件.authz和.passwd;

2.在.authz和.passwd文件中做统一的权限及用户密码配置;

3.在各仓库下的conf/svnserve.conf文件中,将
    password-db = passwd
    authz-db = authz
修改为:
    password-db = ../../.passwd
    authz-db = ../../.authz

4.重新启动svn:
su -
killall svnserve
svnserve -d -r /home/svnadmin/svnroot