一、安装SVN
1.1检查是否已经安装SVN
# rpm -qa subversion
1.2卸载已经安装的SVN
# yum remove subversion
1.3安装SVN
# yum install subversion
1.4验证安装
# svnserve --version
1.5查看安装位置
# rpm -ql subversion
二、建立SVN仓库
2.1建立svn目录:
# mkdir /var/svn
2.2建立svn仓库目录:
# mkdir /var/svn/develop
2.3建立svn仓库:
# svnadmin create /var/svn/develop
三、配置SVN
3.1仓库的配置文件在conf下:
- authz : 配置访问路径及用户权限
- passwd : 配置用户和密码
- svnserve.conf : 仓库配置信息
3.2svnserve.conf配置
(1)去掉以下属性前的#和空格:
- anon-access = read
- auth-access = write
- password-db = passwd
- authz-db = authz
- realm = /var/svn/develop
(2)anon-access:
匿名用户的访问权限,可以为read,write和none,默认值是read。不允许匿名用户访问:anon-access = none
(3)auth-access:
认证用户的权限,可以为read,write和none,默认值是write
(4)password-db:
密码数据库的路径,路径默认为passwd
(5)authz-db:
认证规则库的路径,默认是authz
(6)realm:
认证空间名,版本库所在目录
3.3passwd配置
这个是用来配置用户及密码,采用的是明码。如test = test,=号前面是用户名,后面是密码。
3.4authz配置
(1)[groups]:为了便于管理,可以将一些用户放到一个组里面,比如:test_all = test1,test2
(2)[groups]下边的sections表示对一个目录的认证规则,比如对根目录的认证规则的section为[/]。设置单用户的认证规则时一个用户一行,如:
[/]
test1=rw #test1对根目录的权限为rw
test2=rw #test2对根目录的权限为rw
如果使用group,需要在group名字前加@,如
@test_all=rw #group test_all中的用户均为rw,等价于上边的两句话
注意:
(1)启动时如果从/var/svn/develop启动,/就是develop目录,用如上方式以develop目录为根设置权限。
(2)如果从/home/.svn/启动,每个仓库根还是自己的起始目录。
(3)可以采用如上方式设置astar的权限,也可以采用如下方式:
[develop:/]
@test_all=rw
[develop1:/]
@test_all1= rw
换言之,每个仓库的根目录(/)就是自己的起始目录;[develop:/]这种方式只适用于多仓库的情况;[/]适合于单仓库和单仓库的方式。
四、SVN的启动和停止
4.1启动
(1)从develop目录启动:
# svnserve -d -r /var/svn/develop
访问的根目录/是develop,authz中规则的配置使用[/],访问方式为:
svn://192.168.153.128/
(2)从svn目录启动:
# svnserve -d -r /var/svn
访问的根目录/是svn,authz中对develop仓库规则的配置使用[develop:/],对develop1仓库规则的配置使用[develop1:/],访问方式为:
svn://192.168.153.128/develop
svn://192.168.153.128/develop1
4.2检查svn服务器是否已经启动(svn默认使用3690端口)
# netstat -an | grep 3690
4.3指定端口启动
# svnserve -d -r /var/svn/develop --listen-port 3691
4.4停止
# ps -aux | grep svnserve
# kill -s 9 ID号