一、安装
- 通过
yum install subversion
来安装
- 查看svn版本 使用:
svnserve --version
- 创建svn版本库
使用命令:
svnadmin create svn/repo
eg: svnadmin create /home/svn/tnkg
-
配置svn信息
****
进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)
svnserve.conf
****authz****
********
****
****passwd****
- 起用
svnserve -d -r /home/svn/
6.注意
我的仓库目录是 /home/svn/tnkg。
authz文件中配置的仓库是/、/app和/项目配置目录/开发库/13_参考资料,这3个目录对应的绝对目录是/home/svn/tnkg/、/home/svn/tnkg/app和/home/svn/tnkg/项目配置目录/开发库/13_参考资料。
起用时的目录是 svnserve -d -r /home/svn。
连接是的svn路径是: svn://ip/tnkg。
二、设置权限
需求:添加一个用户组other,该用户组的用户只可以访问仓库根目录下的app文件夹,即/app。
authz 配置
注意[/app]这块,格式一定要是这样的,不要写成[/:app],[app:/]等等之类的,网上有很多种说法,我试了都不行,只有[/app]才可以。
的意思是指除了当前已指定的用户组之外groups中其它的用户组,[/app]下面的是指user和admin。
在小乌龟里访问路径是这样的svn://ip/root/app,假设你的svn仓库是/home/svn/tnkg,这里app所在位置是/home/svn/tnkg/app。
三、http 配置
3.1 安装 mod_dav_svn
yum install mod_dav_svn
3.2 编辑subversion.conf
在/etc/httpd/conf.d/下创建subversion.conf文件,添加以下内容
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization"
AuthUserFile /etc/httpd/svn.auth/svn_passwd
AuthzSVNAccessFile /home/svn/tnkg/conf/authz
Require valid-user
</Location>
注:svn_passwd与svn中的密码是不一样的,通过http登录采用的是httpd服务器自己的校验机制,用户密码得自己重新添加:
htpasswd -bc svn_passwd cgl cgl #创建svn_passwd文件,并添加用户cgl,密码为cgl
再添加用户的时候执行
htpasswd -n svn_passwd cgl2 cgl2 #把用户cgl2密码为cgl2添加到已存在的密码文件(svn_passwd)中
```
3.3 设置权限
chmod -R 777 /home/svn/tnkg
使httpd拥有对svn仓库所有的权限,要不会报如下错误:
[图片上传中。。。(5)]
3.4 重启httpd.service
systemctl restart httpd.service
这时候应该可以正常访问,上传下载了。