参考资料:
http://www.ha97.com/4467.html
SVN作为新一代代码版本管理工具,有很多优点,管理方便,逻辑明确,安全性高,代码一致性高。SVN数据存储有两种方式,BDB(事务安全表类型)和FSFS(一种不需要数据库的存储系统),为了避免在服务器连接中断时锁住数据,FSFS是一种更安全也更多人使用的方式。SVN的运行方式也有两种,一种是独立服务器,另一种是借助apache服务,各有利弊,下面就介绍一下这两种方式各自的部署步骤。
一.作为独立服务器运行,
1.安装subversion
#yum install subversion
#mkdir -p /opt/svn //创建svn目录
#chmod 777 /opt/svn //修改目录权限为777
#svnadmin create /opt/svn/repos //创建一个svn版本仓库repos (repos 名字自己起)
#cd /opt/svn/repos/conf //进入repos版本仓库下的配置文件目录
修改此目录下的三个配置文件
1) svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径
#vim svnserve.conf
修改一下几处:
#anon-access = read
#auth-access = write
#password-db = passwd
将这三行前面的 #号去掉,每行的最左边不能有空格,改成如下:
anon-access = none //read改为none
auth-access = write
password-db = passwd
realm = repos //改成自己的版本库
如图:
![](https://images2015.cnblogs.com/blog/990382/201701/990382-20170117151508974-1764695090.png)
保存退出
2) 修改authz 文件,创建svn组和组用户的权限
#vim authz
[group]
repos = test,test1 //创建一个repos的组,并添加2个用户test,test1
[/] //修改根目录下的权限
@repos = rw //repos组用户的权限为 读写
test = rw //test 用户的权限为读写
* = r //其他用户的权限为只读
如图:
![](https://images2015.cnblogs.com/blog/990382/201701/990382-20170117151509521-1520925434.png)
3)passwd 文件 创建或修改用户密码
#vim passwd
test = test //用户名test的密码为test
test1 = test1 //用户名为test2的密码为test2
保存退出
二.设置开机启动文件
1. 编辑/etc/rc.local
文件内容如下(在touch /var/lock/subsys/local下面添加一行)
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
svnserve -d -r /opt/svn/repos
如图:
![](https://images2015.cnblogs.com/blog/990382/201701/990382-20170117151510255-1370071414.png)
三.启动SVN服务
1.启动svn服务,svn服务默认端口为3690,可以使用“netstat -ntlp”命令查看服务启动是否成功:
#svnserve -d -r /opt/svn/repos
如果已经有svn在运行,可以换一个端口运行
svnserve -d -r /opt/svn/repos --listen-port 3391
这样同一台服务器可以运行多个svnserve
2.启动成功后就可以使用了
a.建议采用TortoiseSVN, 连接地址为: svn://your server address (如果指定端口需要添加端口 :端口号
b.或者用命令行连接:
svn co svn://ip/
连接上之后就可以使用了。
注意!!!!!!
创建仓库:svnadmin create PATH
启用仓库:svnserve -d -r /svntest/tang(具体路径)
也许需要修改conf里的三个配置文件
重点!!!(详细在下面↓↓↓↓↓↓↓)
初始化版本仓库中的目录
# mkdir project project/server project/client project/test (建立临时目录)
# svn import project/ file:///home/svn/project -m “初始化SVN目录”
# rm -rf project (删除临时建立的目录)
- ↓↓↓↓↓↓↓
检查是否安装 telnet:rpm -qa telnet
检查是否安装telnet服务:rpm -qa telnet-server
如果进行了telnet-server安装操作,且已成功安装,则由于telnet服务是由xinetd守护的,所以我们需要重新启动xinetd。 : service xinetd restart
chkconfig telnet on
记得防火墙!!!
在linux中要写入文件:svn checkout svn://192.168.233.128:3391(地址)/svntest/tang(具体路径)
或者是: svn co svn://ip/
TortoiseSVN中checkout是读取文件, import是写入文件
二,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
# mkdir /home/svn
2,新建一个版本仓库
# svnadmin create /home/svn/project
3,初始化版本仓库中的目录
# mkdir project project/server project/client project/test (建立临时目录)
# svn import project/ file:///home/svn/project -m “初始化SVN目录”
# rm -rf project (删除临时建立的目录)
4,添加用户
要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
pm = pm_pw
server_group = server_pw
client_group = client_pw
test_group = test_pw
5,修改用户访问策略
/home/svn/project/conf/authz记录用户的访问策略,以下是参考:
[groups]
project_p = pm
project_s = server1,server2,server3
project_c = client1,client2,client3
project_t = test1,test1,test1
[project:/]
@project_p = rw
* =
[project:/server]
@project_p = rw
@project_s = rw
* =
[project:/client]
@project_p = rw
@project_c = rw
* =
[project:/doc]
@project_p = rw
@project_s = r
@project_c = r
@project_t = r
* =
说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!
6,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:
[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz
7,启动服务器
# svnserve -d -r /home/svn