前言:公司要求搭建一台SVN代码版本管理服务器,用于管理所有代码资产;
项目架构图
1、环境安装
[root@host_centos ~]#yum –y install subversion mod_dav_svn
[root@host_centos ~]#cat /etc/services |grep –color svn #查看己注册
svn 3690/tcp # Subversion
svn 3690/udp # Subversion
2、创建版本库目录
[root@host_centos ~]# mkdir -p /vdb1/svn
[root@host_centos ~]# svnadmin create /var/svn/code
[root@host_centos ~]# svnadmin create /var/svn/resource
[root@host_centos ~]# ls /var/svn/code/
README.txt conf db format hooks locks
3、修改配置文件
将配置文件移动到/vdb1/svn目录下
[root@host_centos svn]# mv /vdb1/svn/code/conf/authz /vdb1/svn/
[root@host_centos svn]# mv /vdb1/svn/code/conf/passwd /vdb1/svn/
修改code下的svnserve.conf文件
[root@host_centos ~]# vim /vdb1/svn/code/test/conf/svnserve.conf
将下面的进行取消注释
anon-access = none #匿名用户不可读写
auth-access = write #授权用户可写
password-db =/vdb1/svn/passwd #使用哪个文件作为帐号文件
authz-db =/vdb1/svn/authz #使用哪个文件作为权限文件
realm = My test #认证空间名
配置用户和密码
[root@host_centos ~]# vim /vdb1/svn/passwd
user1 = 123456
user2 = 123456
user3 = 123456
user4 = 123456
user5 = 123456
user6 = 123456
user7 = 123456
注意:此配置文件的所有内容必须顶格写,否则报错;
配置用户认证权限
[root@host_centos ~]# vim /vdb1/svn/authz
[groups] #组
管理员组:admin_group = user1
开发组:develps_group = user1, user2
资源组:resource_group = user3,user4
产品组:product_group = user5,user6
UI组:ui_group = user7
修改resource下的svnserve.conf文件
[root@host_centos svn]# vim /vdb1/svn/resource/conf/svnserve.conf
anon-access = none
auth-access = write
password-db = /vdb1/svn/passwd
authz-db = /vdb1/svn/authz
4、SVN服务的操作
启动svn服务命令:svnserve –d –r /vdb1/svn
关闭svn服务命令:
ps -aux|grep svnserve #先查出这个服务的进程
kill -9 进程号 #将这个进程杀死;
5、后期增加项目库注意事项
后期如要再添加项目库,为了将所有用户使用统一的密码来进行访问版本库,可以将 /var/svn/code/项目/conf/svnserve.conf文件的 password-db = passwd authz-db = /vdb1/svn/authz 的路径进行改更指向;
6 、其它
设置开机启动
[root@host_centos ~]# chkconfig svnserve on
其它操作
svn代码库从一个仓库迁到另一个仓库
1.导出项目包括提交日志
svnadmin dump /var/svn/pnew/>pnew.svn
pnew:要导出的仓库名
2.导入
svnadmin load code --parent-dir new_admin < dd
code:新仓库名
new_admin:新仓库下的文件夹名