一.SVN简介
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
SVN服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。
下载网址:https://subversion.apache.org/packages.html
本文主要对Centos进行SVN服务器搭建,持续集成Jenkins常需要SVN命令方式执行一些操作。
如果你喜欢更快更简的方式,请用WindowS版本:VisualSVN Server ,在以上地址页面的最下方下载。
二.安装SVN(Linux)
1.安装SVN
yum -y install subversion
注:想快速安装就用Root用户
2.查看安装内容与位置
rpm -ql subversion
3.建立SVN根目录
mkdir /data/svn
4.新建版本库:TestCode
svnadmin create /data/svn/TestCode
注:执行完后,/data/svn/TestCode目录下文件说明
README.txt 版本库的说明文件 conf 配置文件件夹(后续操作最多的文件夹) db SVN数据文件文件夹 format 当前版本库的版本号 hooks SVN的钩子脚本文件夹 locks SVN的文件锁相关的文件夹
4.TestCode库添加用户、分配权限
A.配置SVN
vim /data/svn/TestCode/conf/svnserve.conf
anon-access=none #去除文件前的注释,将read改为none,防止匿名访问auth-access=write #去除文件前的注释password-db=passwd #去除文件前的注释authz-db = authz #去除文件前的注释,访问权限配置,非常重要,不打开,分组权限不生效
B.添加访问TestCode用户
vim /data/svn/TestCode/conf/passwd
[users]# harry = harryssecret# sally = sallyssecretalbert=123456findyou=123456abc=123456love=123456
注:添加了四个用户
C.设置添加的用户权限
vim /data/svn/TestCode/conf/authz
[groups]g_qa=albert,findyoug_read=abc[TestCode:/] #[ <版本库名> : <路径> ] @g_qa=rw # <用户组> = <权限> ,第一种方式@g_read=r # <用户名> = <权限> ,第二种方式love=r*= #* = <权限> ,第三种方式,*为任意用户,此为禁止匿名用户访问 权限> 权限> 用户名> 权限> 用户组> 路径> 版本库名>
注:albert,findyou可读可写,abc、love可读,其他不可访问。
D.防火墙开放SVN端口通行
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
E.开启SVN服务
svnserve -d -r /data/svn
注:命令写入脚本,开机执行,如需要停止SVN,用 “ps -ef|grep svn” 查找到进程;再 " kill -9 进程号 " 即可。
F.SVN客户端访问
svn://IP/TestCode
例:
后记:
当我按照这个流程配置下来以后,在svn客户端连接时出现220003 认证配置无效 svn的错误。解决方法是
authz passwd svnserve.conf 里面去处注释的前后行都不能有空格,我的没有空格也出现了这个问题。我把authz文件与配置无关的注释全部删除就可以运行了。
vim小命令
vim filename //在线编辑文件a //可输入字符x //删除光标位置字符按下ESC,然后输入:wq//保存退出按下ESC,然后输入:q!//不保存退出