1.安装SVN
yum -y install subversion
输入svnserve --version 查看是否安装成功
2. 建立版本库
subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。
vi /etc/sysconfig/svnserve
文件内容
OPTIONS="-r /var/svn"
创建仓库
mkdir -p /var/svn/ #-p递归创建目录
svnadmin create /var/svn/guns 创建版本库
3.配置svn信息
conf下有如下文件
authz:负责账号权限的管理,控制账号是否读写权限 passwd:负责账号和密码的用户名单管理 svnserve.conf:svn服务器配置文件
1)进入conf目录passwd文件设置用户
vi /var/svn/guns/conf/passwd
[users]
lf=lf3306
2)设置权限authz
vi /var/svn/guns/conf/authz
[groups]
admin=lf #加入用户组
[guns:/]
@admin = rw #给用户组赋予读写权限
* = #表示除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录
[/] # 表示svn仓库目录(/var/svn/guns),test: 对应前面配置的realm = test @admin = rw # 表示admin组对仓库(/var/svn/guns)目录有读写权限,r为读,w为写 @test = r # 表示test组的用户对对仓库(/var/svn/guns)目录只有读的权限 [/test1] # 表示test1目录(/var/svn/guns/test1) @test = rw # 表示test组对test1目录有读写权限
- = 备注:版本库的目录格式如下: [<版本库>:/项目/目录] @<用户组名> = 权限 <用户名> = 权限 其中[]內容有許多写法: [/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限 [guns:/],表示对版本库guns设置权限; [guns:/svnadmin],表示对版本库guns中的svnadmin项目设置权限; [guns:/svnadmin/second],表示对版本库guns中的svnadmin项目的目录设置权限;
权限的主体可以是用户组,用户或者,用户组在前面要以@开头,表示全部用户 权限分为:r ,w, rw和null ,null空表示没有任何权限。 auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。
3)设置svnserve.conf
vi /var/svn/guns/conf/svnserve.conf
[general]
anon-access = none #不允许匿名用户访问
auth-access = write #通过验证的用户可以进行读写操作
password-db = passwd #用户账号密码文件
authz-db = authz #权限管理文件
4.启动svn
#启动svn
systemctl start svnserve.service
#开机自启
systemctl enable svnserve.service
5.权限不足,selinux问题
sudo setenforce 0 #临时关闭
#永久关闭
vi /etc/sysconfig/selinux
#修改
SELINUX=disable
6.仓库数据转移
假设将A仓库的数据转移到B仓库
A位置:/var/svn/A
B位置:/var/svn/B
不能直接将A仓库重命名为B,或将A复制得到一个复本,再将复本命名为B 使用svnadmin dump & svnadmin load
使用dump&load方法只将A管理的文件复制到B中,但是A的配置信息(密码等)没有被复制到B中
#创建B仓库(如果B不存在)
svnadmin create /var/svn/B
#得到A仓库.dump文件A.dump
svnadmin dump /var/svn/A > A.dump
#将A.dump 加载到B仓库
svnadmin load /var/svn/B < A.dump
https://www.cnblogs.com/MasterBai2018/p/12067003.html
https://www.cnblogs.com/gr-nick/p/3322213.html?utm_source=tuicool&utm_medium=referral