官网链接: http://subversion.apache.org/packages.html
1. 安装
- 安装
yum install subversion
- 测试是否安装成功
svnserve --version
- 查看或更改svn指向目录和端口(可以使用默认配置,无需修改)
vi /etc/sysconfig/svnserve
编辑示例:
OPTIONS="-r /data/svn --listen-port 3661"
2. 建立版本库
svnadmin create /var/svn/solo
3. svn配置文件
- svnserve.conf
vi /var/svn/solo/conf/svnserve.conf
编辑示例:
[general]
anon-access = none #控制非鉴权用户访问版本库的权限
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名
authz-db = authz #指定权限配置文件名
realm = solo #指定版本库的认证域,即在登录时提示的认证域名称
- passwd
vi /var/svn/solo/conf/passwd
编辑示例:
[users]
chenchen = chenchen #用户,密码
maggie = maggie #用户,密码
- authz
vi /var/svn/solo/conf/authz
编辑示例:
[groups]
g_admin = chenchen
g_solo = maggie
[solo:/]
@g_admin = rw
[solo:/solo]
@g_solo = rw
4. 启停svn
- 启停svn
systemctl start svnserve.service
systemctl stop svnserve.service
或者 svnserve -d -r /var/svn
- 查看svn状态: 默认是3690端口
ps aux|grep svnserve
systemctl status svnserve.service
- 设置开机启动
systemctl enable svnserve.service
5. 问题1: node remains in conflict
执行checkout命令下载代码:
svn checkout svn://xxx.xxx.xxx.xxx/solo/solo /home/web/www/solo --username chenchen
中间卡住了一下, 其实是正常情况但是我却给强行停止了。 然后我再使用svn up更新代码时就出现了node remains in conflict这个错。
网上搜索了一下应该是因为我强行停止导致文件冲突了, 需要svn revert .还原一下。如果不行就强行删掉这个文件夹 svn remove --force filename, 然后重新创建一个文件夹下载。参考链接: https://blog.csdn.net/u011628250/article/details/50516348
6. 问题2: svn show log看不到日志,显示的时间是1970年
解决方法:
1.编辑svnserve.conf,设置“anon-access=none”
2.在authz中添加
[/]
* =
3,清理svn的cache
参考链接1: https://blog.csdn.net/u014756827/article/details/52506590
http访问
7. 安装mod_dav_svn
yum install mod_dav_svn
安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件
sudo find / -name mod_dav_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
sudo find / -name mod_authz_svn.so
/usr/lib64/httpd/modules/mod_authz_svn.so
8. 配置http用户和权限
- 配置用户文件
touch /var/svn/passwd
htpasswd /var/svn/passwd chenchen
- 配置权限校验文件
cp /var/svn/solo/conf/authz /var/svn/authz
9. 配置httpd和subversion关联
vi /etc/httpd/conf.d/subversion.conf
内容如下:
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /var/svn/authz
AuthUserFile /var/svn/passwd
Require valid-user
</Location>
10. 重启httpd服务
systemctl restart httpd.service
http://47.95.194.85/svn/solo/ 就可以访问啦、
小乌龟客户端也可以访问:
参考链接2: https://blog.csdn.net/bbcrab/article/details/78425887
作者 @没有故事的老大爷
我走得很慢,但从不后退。