在Linux 搭建SVN服务
需要在Centos7系统搭建一个SVN服务用于管理代码
分为服务端和用户端
服务端
安装svnadmin
1 | yum install subversion |
查看svnadmin版本
1 | svnadmin --version |
创建版本库
1 | mkdir /svn/ |
设置开机启动
1 | systemctl enable svnserve |
添加用户
需要进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
注意:3个配置文件 在配置前都是没有空格的 等号 = 前后有一个空格 一定要遵守这个规则,否则会报错
1
2cd /svn/svnLearn/conf
vim passed在最后加上
1
2zhouinfo = 123456
test=123456帐号=密码
为添加的用户设置权限
1 | vim authz |
在最后面添加
1 | [/] |
- [/] 所有仓库 [svnLearn:/] 指定svnLearn仓库 [svnLearn:/src/conf/] 指定svnLearn仓库下某个路径 的权限
- 用户名= r:读权限 w:写权限 空:为没有读写权限
- zhouinfo用户就有这个仓库的读写权限了
- test只有读权限
- * 除开(zhouinfo和test)其他的用户和匿名用户 都没有读写权限
修改SVN服务配置文件
1 | vim svnserve.conf |
- anon-access = read #匿名用户可读
- anon-access = none #匿名用户不可读
- auth-access = write #授权用户可写
- password-db = passwd #使用哪个文件作为账号文件 ‘/svn/passwd’ 绝对路径
- authz-db = authz #使用哪个文件作为权限文件 ‘/svn/authz’ 绝对路径
- realm = /svn/svnLearn # 认证空间名,版本库所在目录 或者写仓库名称(相对位置) svnLearn
- 当svn管理的多个仓库时 可以使用 password-db authz-db 指定文件 统一处理用户和权限
启动svn服务器
1 | svnserve -d -r /svn |
- -d 后台运行
- -r 自定仓库路径
检查是否成功启动
1 | ps -ef | grep 'svnserve' |
SVN默认的打开端口是3690
可以用命令行查看
1 | netstat -antp | grep svn |
重启SVN服务
重启可以 kill 后在启动
1 | 查找对应pid |
防火墙
如果开启了防火墙就需要打开防火墙端口
firewall-cmd –permanent –zone=public –add-port=3690/tcp
firewall-cmd –reload
用户端
需要安装好svn
如果是用TotoiseSVN安装svn,那么在安装时需要注意勾选 svn 命令行工具
检出项目
安装好svn后
使用命令行就可以检出项目 也可以在任意的目录下右键检出
1 | #svn checkout svn://118.24.75.xxx:3690/svnLearn --username zhouinfo --password 123456 |
提交更新
添加数据后提交
因为之前服务器上配置仓库的权限
可以匿名访问这个仓库 但不能提交数据所以需要加上用户名和密码进行提交
svn会记住密码以后就不需要加账号密码了
1 | echo "test" > test.txt |
使用http访问svn
需要安装 httpd
和 mod_dav_svn
yum install -y httpd mod_dav_svn
vim /etc/httpd/conf.d/subversion.conf
1 | <Location /svn > |
修改httpd端口vim /etc/httpd/conf/httpd.conf
Listen 3691
service httpd stop
service httpd status
service httpd start
本文作者 : zhouinfo
原文链接 : http://blog.zhouinfo.site/2019/01/11/%E5%9C%A8Linux-%E6%90%AD%E5%BB%BASVN%E6%9C%8D%E5%8A%A1/
版权声明 : 本博客所有文章除特别声明外,均采用 CC Apache License 2.0 许可协议。转载请注明出处!