一、简介
Subversion
(简称SVN
)是一个自由开源的版本控制系统。Subversion
将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。目前,Subversion
已成为主流的开源代码版本管理软件之一。@H_403_15@
二、安装SVN服务
sudo apt-get install subversion
三、创建版本库
1、创建目录文件夹
sudo mkdir /var/svn sudo mkdir /var/svn/project1 sudo mkdir /var/svn/project2
2、创建版本库 project1
svnadmin create /var/svn/project1
3、创建版本库 project2
svnadmin create /var/svn/project2
四、设置用户及访问权限
1、集中配置
为了便于管理,将所有版本库的密码和权限,设置在同一个目录下@H_403_15@
1.1、在根目录下创建conf文件夹,用来存放公共配置文件@H_403_15@
sudo mkdir /var/svn/conf
1.2、拷贝project1/conf
文件夹下的authz
和passwd
两个文件到svn根目录下面@H_403_15@
cp /var/svn/project1/conf/authz /var/svn/conf cp /var/svn/project1/conf/passwd /var/svn/conf
1.3、修改每个版本库目录conf
文件夹下面的svnserve.conf
文件,将以下内容@H_403_15@
password-db = passwd
authz-db = authz@H_403_15@
password-db = ../../conf/passwd
authz-db = ../../conf/authz@H_403_15@
注:../../conf/passwd
代表相对路径而非绝对路径@H_403_15@
2、添加用户
打开/svn/conf/passwd
文件,在[user]
标识下添加用户(username = password
对应关系)@H_403_15@
[user]
svnadmin = pwd_svnadmin
manage1 = pwd_manage1
manage2 = pwd_manage2
dev1 = pwd_dev1
dev2 = pwd_dev2
dev3 = pwd_dev3
dev4 = pwd_dev4
test1 = pwd_test1
test2 = pwd_test2@H_403_15@
注:=
等号前后有空格@H_403_15@
3、分配权限
定义几个角色用来测试@H_403_15@
配置管理员(svnadmin),用来管理整个库
经理(manage),用来管理项目文档
开发(dev),用来管理项目代码
测试(test),用来管理测试相关文档@H_403_15@
设置分组
打开/svn/conf/authz
文件,在[group]
标识下添加用户(groupname = username
对应关系)@H_403_15@
[group]
admin_group = svnadmin
manage_group_1 = manage1
manage_group_2 = manage2
dev_group_1 = dev1,dev2
dev_group_2 = dev3,dev4
test_group_1 = test1
test_group_2 = test2@H_403_15@
注:=
等号前后有空格;多个用户之间用,
逗号分隔@H_403_15@
分组访问权限@H_403_15@
[/]
@admin_group = rw
* = r@H_403_15@[project1:/]
@admin_group = rw
@manage_group_1 = rw
@dev_group_1 = r
@test_group_1 = r@H_403_15@[project1:/Public]
@admin_group = rw
@manage_group_1 = rw
@dev_group_1 = r
@test_group_1 = r@H_403_15@[project1:/code]
@dev_group_1 = rw
* =@H_403_15@[project1:/test]
@test_group_1 = rw
* =@H_403_15@[project2:/]
@admin_group = rw
@manage_group_2 = rw
@user_group_2 = r
@test_group_2 = r
[project2:/code]
@dev_group_2 = rw
* =@H_403_15@
注:=
等号前后有空格@H_403_15@
4、修改配置文件
打开/svn/conf/svnserve.conf
文件,将以下内容@H_403_15@
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz@H_403_15@
anon-access = none
auth-access = write
password-db = ../../conf/passwd
authz-db = ../../conf/authz@H_403_15@
五、启动SVN服务
1、启动服务
sudo svnserve -d -r /var/svn --config-file /var/svn/conf/svnserve.conf
2、设置开机自启动
在目录/etc/init.d
下添加脚本startsvn.sh
@H_403_15@
#!/bin/bash sudo svnserve -d -r /var/svn --config-file /var/svn/conf/svnserve.conf
执行命令 sudo update-rc.d starsvn.sh defaults
,将脚本添加到自启动项目中。@H_403_15@
六、验证访问版本库地址
[参考] SVN服务器在Ubuntu16.04下搭建多版本库详细教程 - 恒久力行@H_403_15@