使用yum安装svn
[root@mail ~]# yum install subversion
验证svn版本
[root@mail ~]# svnserve --version svnserve, version 1.6.11 (r934486) compiled Mar 5 2014, 14:32:27 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.tigris.org/ This product includes software developed by CollabNet (http://www.Collab.Net/). The following repository back-end (FS) modules are available: * fs_base : Module for working with a Berkeley DB repository. * fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available.
创建svn存放路径
[root@mail ~]# mkdir /data/wuxia_svn/
创建版本库
[root@mail ~]# svnadmin create /data/wuxia_svn/davsvn --davesvn为版本库名称
在版本库创建完后会在该目录下的conf目录下产生3个文件
authz passwd svnserve.conf
(1)svnserve.conf: svn服务配置文件下。
(2)passwd: 用户名口令文件。
(3)authz: 权限配置文件。
开始修改配置文件
svnserve.conf 文件, 该文件配置项分为以下5项:(把下面这5项的注释去掉即可启用)
anon-access: 控制非鉴权用户访问版本库的权限。
auth-access: 控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
Passwd 文件 :这个配置文件就是配置svn用户跟密码
格式: 用户名=密码
[root@mail conf]# cat passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
svnadmin=svnadmin213
ceshi=ceshi654
cehua=cehua125
client=client874
server=server987
meisu=meisu076
authz 文件 :
在网上找到一个很好的配置例子:
[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
--这里把不同用户放到不同的组里面,下面在设置目录访问权限的时候,用目录来操作就可以了。
# 为所有库指定默认访问规则
# 所有人可以读,管理员可以写,危险分子没有任何权限
[/] --对应我测试里的:/u02/svn 目录
* = r
@admin = rw
dangerman =
# 允许开发人员可以完全访问他们的项目版本库
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# 文档编写人员对所有的docs目录有写权限
[/trunk/doc]
@docs = rw
# 培训人员可以完全访问培训版本库
[TrainingRepos:/]
@training = rw
下面我们来配置我们的authz文件:
[root@singledb conf]# cat authz
[groups]
admin = svnadmin
cehua = cehua01,cehua02,cehua03
ceshi = ceshi01,ceshi02
server = server01,server02,server03
client = client01,client02,client03
meisu = meisu01,meisu02,meisu03
[davsvn:/]
@admin = rw
dangerman =
[davsvn:/cehua]
@cehua = rw
[davsvn:/ceshi]
@ceshi = rw
[davsvn:/server]
@server = rw
[davsvn:/client]
@client = rw
[davsvn:/meisu]
@meisu = rw
各个权限访问路径说明
admin用户直接访问版本库
而其余的ceshi,cehua,meisu,client等等目录需要用admin用户建立后才能访问
这样建立对应的目录后,ceshi,cehua,client等等账号才能访问对应的目录
启动和停止SVN服务
(1)启动SVN服务:
[root@mail ~]# svnserve -d -r /data/wuxia_svn/
-d表示后台运行
-r 指定根目录是 /u02/svn
[root@singledb conf]# ps -ef | grep svn
root 4592 1 0 18:04 ? 00:00:00 svnserve -d -r /data/wuxia_svn/
root 4594 3709 0 18:04 pts/1 00:00:00 grep svn
(2)停止SVN服务:
ps -aux |grep svn
kill -9 进程杀掉