发布于 2015-06-08 00:11:15 | 247 次阅读 | 评论: 0 | 来源: PHPERZ
Apache Subversion 开源的版本控制系统
Subversion是一个自由,开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
Subversion是一个自由,开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
cat /etc/redhat-release //查看系统版本
CentOS release 7.1 (Final)
这里我们采用yum源安装方式:
1、安装svn
yum install subversion -y
2、建立SVN根目录
mkdir -p /var/svn/
3、启动SVN服务指定服务的SVN根目录
svnserve -d -r /var/svn/svndata/ --pid-file=/var/svn/svndata/svn.pid
4、查看 SVN 进程:
ps -ef|grep svn|grep -v grep
root 3167 1 0 11:03 ? 00:00:00 svnserve -d -r /var/svn/svndata/ --pid-file=/var/svn/svndata/svn.pid
看到以上那段信息说明SVN服务器已安装成功,下边我们来看看SVN服务的商品号
5、检测 SVN 端口:
netstat -ln |grep 3690
tcp 0 0 :::3690 :::* LISTEN
6、建立版本库
创建一个新的 Subversion 项目 obj
svnadmin create /var/svn/svndata/obj
7、配置允许用户读写访问
cd /var/svn/svndata/obj/conf/
vi svnserve.conf 将以下内容前的‘#’和空格 全部去掉,并修改内容
=================================================
12 anon-access = none //这里默认是read
13 auth-access = write
18 password-db = /var/svn/svndata/obj/conf/passwd
25 authz-db = /var/svn/svndata/obj/conf/authz
=================================================
注: svnserve.conf 中每个参数都要顶格写,开头不能有空格。
9、备份原authz和passwd文件:存放svn服务器用户的帐号、密码
cp authz passwd /var/svn/
10、配置passwd文件
anquan1 = 11
anquan2 = 22
anquan3 = 33
anquan4 = 44
#################################
提示:
1.等号前为 SVN 帐号,等号后为 svn 密码
2.更改 svnserve.conf 时,需要重起 SVN,更改 authz,passwd 文件时不需要重启
11、配置authz文件
#配置用户组
sygt_web = anquan1,anquan2,anquan3,anquan4
#根目录下及子目录anquan1有只读权限
[/]
anquan1 = r
#其他用户只有只读权限
* = r
#根目录下sygt目录及其子目录sygt_web有读写权限
[sygt:/]
@sygt_web = rw
#其他用户禁止访问本目录
* =
#################################
提示:注意 authz 权限格式的写法
1.authz 中每个参数都要顶格写,开头不能有空格。
2.对于组,要@开头,用户不需要@开头。
12、在linux下测试访问(看是否报错)
svn co svn://192.168.1.190/sygt
13、外部因防火墙问题不能访问
--添加端口
firewall-cmd --permanent --zone=public --add-port=3690/tcp
--重启防火墙
systemctl restart firewalld.service
重启 SVN 命令<非必需>
kill -USR1 `cat /var/svn/svndata/svn.pid`
svnserve -d -r /var/svn/svndata/ --pid-file=/var/svn/svndata/svn.pid
提示:当更改 svnserve.conf 时,需要重起 SVN,更改 authz,passwd 文件时不需要重起