介绍
官网介绍:
Apache Subversion 最初是一个功能齐全的版本控制系统 旨在成为更好的 CVS。从那时起,Subversion 已经超出了其最初的目标 替换 CVS,但其基本模型、设计和接口保持不变 深受这一目标的影响。即使在今天,Subversion 也应该 对于CVS用户来说,仍然感到非常熟悉。
安装
在centos上安装SVN是一件非常简单的事情,可以参考Apache Subversion 二进制包进行安装。
-
CentOS 项目(客户端和服务器)
$ yum install subversion $ yum install mod_dav_svn对于服务端只需要执行
yum install subversion即可。
配置
SVN仓库的配置相对来说比较复杂。
- 设置SVN仓库根目录
mkdir -p /var/svn/myrepo
将OPTIONS="-r /var/svn/myrepo"添加到/etc/sysconfig/svnserve文件中
vim /etc/sysconfig/svnserve
- 创建SVN版本库
svnadmin create /var/svn/myrepo/projectA
/var/svn/myrepo只是svn的一个根目录,具体的项目仓库我们可以在myrepo文件夹中使用svnadmin create新建,命令执行完后会出现projectA目录,并且目录中出现以下文件:
我们主要对conf目录中的3个文件进行修改配置。
- 配置用户 在authz文件中添加:
[groups]
admin = user1,user3
dev = user2,user4
[/]
@admin = rw
@dev = r
[groups] 表示组,当前组中有两个用户组admin和dev,admin中包含用户user1和uesr3。dev用户组包含user2和user4。
[/]表示根目录。即admin用户组对根目录有读写的权限,dev对根目录有读的权限。
在passwd文件中添加:
[users]
user1 = password1
user2 = password2
user3 = password3
user4 = password4
给用户设置密码。 修改svnserve.conf文件:
[general]
anon-access = read # 禁止匿名访问
auth-access = write # 授权用户具有写权限
password-db = passwd # 密码文件位置
authz-db = authz # 权限文件位置
realm = projectA # 认证域名称,创建的项目仓库目录名
- 启动
svnserve -d -r /var/svn/myrepo
#或者
systemctl start svnserve
svn默认端口是3690,如果开启了防火墙记得开放端口。 当然在启动的时候也可以指定svn使用的端口。
svnserve -d --listen-port 8083 -r /var/svn/myrepo --log-file=/var/log/svn.log
验证
使用TortoiseSVN download | SourceForge.net进行checkout操作。
- 获取svn仓库地址
以porjectA项目位列,svn的地址是:
svn://127.0.0.1:3690/var/svn/myrepo/projectA。
但是在这之前我们已经把/var/svn/myrepo设置成了根目录,所以地址中这部分可以省去。同时3690是默认端口,也可以不用加。最后仓库地址就变成了:
svn://127.0.0.1/projectA - 使用TortoiseSVN checkout:
点击OK会弹出密码验证弹窗,正确输入,验证通过,便可以将仓库同步下来。