安装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