1.安装
centos下安装svn
$ sudo yum install subversion
检查svn安装路径
$whereis svnserve
检查svn是否安装成功
$svnserve --version
2.新建一个目录存储svn目录
mkdir /var/svn
然后在目录下新建一个测试仓库
svnadmin create /var/svn/test/
ls /var/svn/test
drwxr-xr-x. 2 root root 4096 Jul 28 18:12 conf
drwxr-sr-x. 6 root root 4096 Jul 28 18:12 db
-r--r--r--. 1 root root 2 Jul 28 18:12
format
drwxr-xr-x. 2 root root 4096 Jul 28 18:12 hooks
drwxr-xr-x. 2 root root 4096 Jul 28 18:12 locks
-rw-r--r--. 1 root root 229 Jul 28 18:12 README.txt
以下关于目录的说明:
hooks目录:放置hook脚步文件的目录
locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
format目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号
conf目录:是这个仓库配置文件(仓库用户访问账户,权限)
3.配置svn服务的相关文件
1)编辑svnserve.conf,取消部分注释
anon-access = none #控制非鉴权用户访问版本库的权限 auth-access = write #控制鉴权用户访问版本库的权限 password-db = passwd #指定用户名口令文件名 authz-db = authz #指定权限配置文件名 realm = spring-hello-world #指定版本库的认证域,即在登录时提示的认证域名称
2)编辑passwd,配置访问用户和密码
[
users
]
# harry = harryssecret
# sally = sallyssecret
test1 = 123456
test2 = 654321
3)编辑authz,配置用户权限
# @harry_and_sally = rw
# * = r
admin = test1
user = test2
[
/svn/test/
]
@admin = rw
@user = r
备注:
admin = test1 创建admin组,组成员为:test1
user = test2 创建用户组,用户成员:test2
[test:/] 赋予根权限,为了便于管理和权限的控制,可以把权限细化到版本库中相应的目录
@admin = rw admin组有读写的权限
@user = r user组只有读的权限
*= 表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上。
4.启动svn服务
$svnserve -d -r /var/svn
注意:更改svnserver.conf时需要重启SVN服务,更改authz,passwd文件时则不需要重启服务
检查服务是否启动成功 :$ps aux |grep svn
设置成开机启动:$sudo systemctl enable svnserve.service