安装步骤如下:
1、yum install subversion
2、输入rpm -ql subversion查看安装位置,如下图:
我们知道svn在bin目录下生成了几个二进制文件。
输入 svn --help可以查看svn的使用方法,如下图
3、创建svn版本库目录
mkdir -p /var/svn/svnrepos
4、创建版本库
svnadmin create /var/svn/svnrepos
执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件
5、进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
【注意:三个配置文件里不能有空格和空行,前端的一定要顶到头】
6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。
8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
9、启动svn版本库
svnserve -d -r /var/svn/svnrepos
10、在windows上测试
新建一个测试文件夹,在该文件夹下右键选择 SVN checkout如下图(要事先安装TortoiseSVN):
填写SVN的地址,如下图:
输入密码,如下图:
启动命令 svnserve -d -r /var/svn/svnrepos
-r 后面的是安装时的文件路径
netstat-anp |grepsvn 查看端口
linux 命令测式svn
svn co svn://192.168.0.22/仓库
4,添加用户要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123456
huangyunping = 123456
hekaining = 123456
shunfeng = 123456
zhushengnan = 123456
gaozhe = 123456
luwenjun = 123456
fangwei = 123456
yefuhua = 123456
wangwei = 123456
chenwei = 123456
解释:上面是创建用户账户,不管上面的账号是哪个组,只要有登陆就必须在这个地方建好,分组是在authz文件下控制。上文的admin账号,我是建一个最高权限的账号。姓名 = 密码
5,修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略,这个地方我纠结了几天,因为访问目录不同,但是你想通之后也就明白了。里面有很多#注释掉的费代码,都可以不看的,我这里直接贴有用的脚本。以下是参考:
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
#组的访问权限
[groups]
project_admin = admin,wangwei
project_ui = huangyunping
project_app = hekaining
project_web = shunfeng,zhushengnan
project_jg = liuyuntao
project_yj = gaozhe,luwenjun
project_test = fangwei,yefuhua
project_products =chenwei
#各组的访问路径[project:/]
@project_admin = rw
* =
[project:/ui]
@project_ui = rw
@project_admin = rw
* =
[project:/app]
@project_app = rw
@project_admin = rw
* =
[project:/web]
@project_web = rw
@project_admin = rw
* =
[project:/jiagou]
@project_jg = rw
@project_admin = rw
* =
[project:/yingjian]
@project_yj = rw
@project_admin = rw
* =
[project:/test]
@project_test = rw
@project_admin = rw
* =
[project:/products]
@project_products = rw
@project_admin = rw
* =
说明:
新建组名=组员,就是passwd里面新建的账号,上下有两部分,上部分是分组,下部分是设置组的访问路径。
[项目名,/限制该组访问的文件夹]
rw是读写权限,r是只读权限,每个组的最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!