1.安装SVN

    1. yum -y install subversion
    2. 输入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