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
设置成开机启动
1.编辑rc.local文件
vi /etc/rc.d/rc.local
2.加入启动命令
/usr/bin/svnserve -d -r /svn/test(创建仓库位置)
5.window端客户端连接
常见问题:
1.连接svn服务器提示:Unable to Connect to a repository at URL
- 原因是svn指定运行仓库路径错误( /svn/test)
- 查看svn进程:ps -aux|grep svn
root 2021 0.0 0.0 156996 760 ? Ss 07:18 0:00 /usr/bin/svnserve -d -r /svn/test
root 2465 0.0 0.0 103256 836 pts/0 S+ 07:19 0:00 grep svn
如果 svnserve -d -r /mnt/svn 指定的仓库路径与实际仓库路径不匹配,杀掉该进程后重新指定正确的仓库路径
2.由于目标计算机积极拒绝,无法连接
- svn 未启动,启动svn: svnserve -d -r ‘svn的仓库路径’
- 防火墙原因,开放svn端口: 添加3690端口