- 最新版本号(svn-1.14)
https://opensource.wandisco.com/centos/7
-
更新版本库
sudo tee /etc/yum.repos.d/wandisco-svn.repo <<-'EOF' [WandiscoSVN] name=Wandisco SVN Repo baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.14/RPMS/$basearch/ enabled=1 gpgcheck=0 EOF
- 执行安装
yum remove subversion && yum -y install subversion
- 创建仓库
mkdir -p /opt/svn/repos && svnadmin create /opt/svn/repos
- 创建用户
编辑:/opt/svn/repos/conf/passwd [users] admin=123456 aaaaaa=123456 bbbbbb=123456 cccccc=123456 dddddd=123456
- 分配权限
编辑:/opt/svn/repos/conf/authz [groups] ProjectName_1=admin,aaaaaa,bbbbbb ProjectName_2=admin,cccccc,dddddd # 注意:组名为项目名并为项目组分配成员[/ProjectName_1] @ProjectName_1=rw *= # 注意:只有ProjectName_1组成员可以访问svn://192.168.1.97:3690/ProjectName_1且具有读写权限[/ProjectName_2] @ProjectName_2=rw *= # 注意:只有ProjectName_2组成员可以访问svn://192.168.1.97:3690/ProjectName_2且具有读写权限[/] admin=rw *= # 注意:只有admin可以访问仓库根路径svn://192.168.1.97:3690/且具有读写权限(可在根路径创建项目)
- 配置文件
编辑:/opt/svn/repos/conf/svnserve.conf [general] anon-access=none auth-access=write password-db=passwd authz-db=authz realm=/opt/svn/repos # 注意:/opt/svn/repos为仓库路径
- 启动服务
启动服务:svnserve -d -r /opt/svn/repos --listen-port=3690 --config-file=/opt/svn/repos/conf/svnserve.conf 查看服务:ps -ef | grep svnserve 关闭服务:kill -9 PID 注意:/opt/svn/repos为仓库路径,/opt/svn/repos/conf/svnserve.conf为配置文件路径
- 开机启动
#---------------------------------------------------------- sudo tee /usr/bin/svn.sh <<-'EOF' #! /bin/bash /usr/bin/svnserve -d -r /opt/svn/repos --listen-port=3690 --config-file=/opt/svn/repos/conf/svnserve.conf EOF chmod +x /usr/bin/svn.sh #---------------------------------------------------------- sudo tee /etc/systemd/system/svn.service <<-'EOF' [Unit] Description=SVN After=syslog.target network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/svn.sh [Install] WantedBy=multi-user.target EOF #---------------------------------------------------------- systemctl enable svn #---------------------------------------------------------- reboot
- 开放端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent && firewall-cmd --reload
- 创建项目
1.admin用户浏览版本库:svn://192.168.1.97:3690/ 2.项目文件夹添加到仓库,文件夹名称与访问路径[/ProjectName_1][/ProjectName_2]一致
-
检出项目
根据权限配置可以验证:/opt/svn/repos/conf/authz 用户aaaaaa和bbbbbb可以访问并检出代码svn://192.168.1.97:3690/ProjectName_1 用户cccccc和dddddd可以访问并检出代码svn://192.168.1.97:3690/ProjectName_2
用户aaaaaa无法访问svn://192.168.1.97:3690/ProjectName_2,切换用户cccccc后可以访问