一、准备工作,依赖包安装

    yum install apr*

    yum install sqlite*

二、下载svn包和安装

    cd /usr/local/src/


    wget http://mirror.bit.edu.cn/apache/subversion/subversion-1.7.20.tar.gz


    tar -zxvf subversion-1.7.20.tar.gz


    cd subversion-1.7.20/


    ./configure --prefix=/usr/local/subversion --without-berkeley-db   #prefix指定安装的目录,without-berkeley-db表明不使用berkeley数据库

   

    make && make install

    

三、配置系统环境

    vim /etc/profile

    添加:

        exprot PATH=$PATH:/home/svnroot/subversion/bin

    验证是否安装成功:

        /usr/subversion/bin/svnserve --version


四、建立仓库

    mkdir  -p  /home/svnroot/svndata/repos1   #repos1是其中的一个仓库,svndata是所有仓库的根目录

    1、建立仓库

        svnadmin create  /home/svnroot/svndata/repos1

    2、配置仓库

        cd /home/svnroot/svndata/repos1/conf

    3、修改svnserve.conf配置文件

        vi svnserve.conf 

            

            [general]  

              

            anon-access = none  

              

            auth-access = write  

              

            password-db = passwd  

              

            authz-db=authz

    4、目录控制文件authz (or叫权限控制文件)

        

        vi authz  

  

            默认是没有配置的,要参照下面示例来配置  

              

            [groups]  

              

            admin = svnadmin  

              

            [repos1:/]  

              

            @admin = rw  

              

            svnadmin = rw  

              

            上面的配置权限控制文件的配置格式如下:  

              

            [groups]  

              

            <用户组名> = <用户1>,<用户2>, ……  

              

            [<版本库>:/项目/目录]  

              

            @<用户组名> = <权限>  

              

            <用户名> = <权限>  

              

            其中,方框号内部分可以有多种写法:  

              

            /,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/home/svnadmin/svndata。这样/就是表示对全部版本库设置权限。  

              

            repos1:/,表示对版本库1设置权限  

              

            repos2:/occi,表示对版本库2中的occi项目设置权限  

              

            repos2:/occi/aaa,,表示对版本库2中的occi项目的aaa目录设置权限  

              

            权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

    

    5、修改用户密码文件passwd

        vi passwd

            默认也是没有配置任何用户的,可按下面配置示例配置  

              

            [users]  

              

            svnadmin = 123456  

              

            用户密码的配置格式:  

              

            [users]  

              

            <用户1> = <密码1>  

              

            <用户2> = <密码2>  

              

            注意:这里的配置文件,除了注释外每行都必须顶行,否则又会报错了。


五、启动

        

        svnserve -d -r /home/svnadmin/svndata  

          

        -d表示在后台运行,-r表示……  

          

        注意:这里是/home/svnadmin/svndata,并非/home/svnadmin/svndata/repos1。这是SVN使所有仓库根目录都生效的命令,并非某个仓库。这里必须注意。


六、测试

        

    svn co svn://192.168.6.74/repos1  

    checkout的时候,会要求输入用户名密码,只有配置了的用户才能验证通过