安装svn

yum -y install mod_dav_svn subversion


安装httpd即apache

yum -y install httpd


1.

配置svn仓库

mkdir -p /data/svn


建立svn版本库(可以建立多个仓库)

svnadmin create /data/svn/project


2.修改svn版本库配置

vi /data/svn/project/conf/svnserve.conf

anon-access = none    

auth-access = write

password-db = /data/svn/passwd    #指向用户配置文件

authz-db = /data/svn/authz     #指向权限配置文件


配置svn用户和权限

vim /data/svn/authz

[groups]    #权限分组

manager=admin


[/]    #根目录

@manager=rw    #manager组有读写权限


[project:/]    #project库

*=r    #所有人都有读取权限


创建用户名和密码文件

cd /data/svn/

htpasswd -c passwd admin


3.

开启httpd访问

vi /etc/httpd/conf.d/subversion.conf

<Location /svn/>

         DAV svn

         SVNParentPath /data/svn/    #一定要注意,这里是创建版本库的父目录

         AuthType Basic

         AuthName "Subversion repos"

         AuthUserFile /data/svn/passwd

         AuthzSVNAccessFile /data/authz

         Require valid-user

 </Location>

其中/data/svn是准备放仓库的目录,这个目录可以放置多个代码仓库,AuthUserFile就是用户和密码的文件,也可以移动到其他地方单独管理.


vi /etc/httpd/conf/httpd.conf

将里面的 #ServerName localhost:80 注释去掉

修改Linsten端口为80外的其它端口


访问: http://ip/svn/project

完成.

############################################################################################################

解决SVN Can’t open file ‘/XXX/xxx/db/txn-current-lock’错误

 出现这种问题的原因在于搭建SVN服务器,包括创建Repository目录/home/svn目录下的一切子目录和文件都是在root用户下进行的,所 以在root用户下检出、提交都没有问题。可在Windows PC上从客户端访问就有问题了,因为是只有拥有管理器权限的人才能对Repository目录进行完全控制,而在Windows从客户端访问的话,因为是 Users用户组的,对Repository没有修改权限,所以不能提交。


解决办法: 在服务器上把Users对Repository的完全控制权限加上就可以了,执行如下命令对/home/svn目录下的所有文件和子目录添加Users的读写权限


      执行下面的命令:


    chmod -R o+rw /home/svn    


    #这里的路径是你项目库的根目录


###############################################################################################################

The URI does not contain the name of a repository. [403, #190001]


解答:这是由于subversion.conf文件中SVNParentPath路径设置不正确引起的,SVNParentPath路径必须为svnadmin create生成数据仓库路劲的父目录,如上面建立数据仓库的命令为svnadmin create /storage/svn/aiezu,则SVNParentPath为/storage/svn