美文网首页
windows下svn迁移到linux

windows下svn迁移到linux

作者: Daisy小朋友 | 来源:发表于2021-07-07 15:29 被阅读0次

    需求:

    将windows上svn迁移到linux上

    linux:centos 6.10
    windows svn版本:visualSVN Server Manager 3.5.7
    linu svn版本:subversion-1.6.11-15.el6_7.x86_64
    apache:
    httpd-2.2.15-69.el6.centos.x86_64
    mod_dav_svn-1.6.11-15.el6_7.x86_64
    

    实现svn方式和http方式访问

    linux下svn服务器搭建

    1 svn安装并创建版本库:
    #1>yum安装
     yum -y install subversion
    #2>查看svn安装位置
     rpm -ql subversion
    #3>创建版本库目录存放svn repo
     mkdir -p /svn/svndir
    #4>创建版本库
    svnadmin create /svn/svndir/test3
    #创建完成后进入/svn/svndir/test3目录下可看到
    drwxr-xr-x 2 root root 4096 Jul  7 14:41 conf
    drwxr-sr-x 6 root root 4096 Jul  7 14:41 db
    -r--r--r-- 1 root root    2 Jul  7 14:41 format
    drwxr-xr-x 2 root root 4096 Jul  7 14:41 hooks
    drwxr-xr-x 2 root root 4096 Jul  7 14:41 locks
    -rw-r--r-- 1 root root  229 Jul  7 14:41 README.txt
    
    2 修改配置

    进入conf目录

    cd /svn/svndir/test3/conf/
    -rw-r--r-- 1 root root 1080 Jul  7 14:41 authz
    -rw-r--r-- 1 root root  309 Jul  7 14:41 passwd
    -rw-r--r-- 1 root root 2279 Jul  7 14:41 svnserve.conf
    

    authz:负责test3库的账号权限管理,控制账号是否读写权限
    passwd:负责test3库的账号和密码管理,注意密码是明文的
    svnserve.conf:svn服务器配置文件
    示例:

    #passwd文件,注意=两边要有空格
    [users]
    test1 = 123456
    test2 = 12345
    
    #authz文件
    [test3:/]
    test1 = rw
    #表示test1用户对test3库是rw读写状态
    #svnserve.conf文件
    [general]
    anon-access = read
    auth-access = write
    password-db = passwd   //文件名
    
    3 启动访问

    启动:

    svnserve -d -r /svn/svndir
    

    端口:3690 注意打开防火墙
    访问:
    svn://192.168.1.206:3690/test3

    httpd方式访问svn

    1 安装apache
    yum -y install httpd mod_dav_svn
    

    用mod_dav_svn模块实现Apache服务进行访问svn仓库,mod_dav_svn是Apache和svn之间的接口

    2 修改svn的httpd配置文件
    -bash-4.1# cat /etc/httpd/conf.d/subversion.conf|grep -v "^#"|grep -v "^$"
    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so
    <Location /svn>
       DAV svn
       SVNParentPath /svn/svndir
         AuthType Basic
         AuthName "Authorization Realm"
         AuthUserFile /svn/svndir/passwd
         AuthzSVNAccessFile /svn/svndir/authz
         Require valid-user
    </Location>
    
    

    SVNParentPath /svn/svndir
    指如果有多个版本库建议使用SVNParentPath不使用SVNPath,/svn/svndir 版本库位置
    AuthUserFile /svn/svndir/passwd
    指后面使用apache的htpasswd创建的用户名密码
    AuthzSVNAccessFile /svn/svndir/authz
    指权限文件

    3 htpasswd创建用户密码

    创建用户并设置密码

    -m表示MD5加密,注意-c表示创建新文件,下次添加用户就不需要添加-c参数了,否则会覆盖之前添加的账户
    -bash-4.1# htpasswd -cm /svn/svndir/passwd test1
    New password: 
    Re-type new password: 
    Adding password for user test1
    查看创建的用户名和密码
    -bash-4.1# cat /svn/svndir/passwd 
    test1:$apr1$mdDnVgZm$1vwM5rrejKX41ag4kzlKR
    帮助
    -bash-4.1# htpasswd -h
    Usage:
        htpasswd [-cmdpsD] passwordfile username
        htpasswd -b[cmdpsD] passwordfile username password
    
        htpasswd -n[mdps] username
        htpasswd -nb[mdps] username password
     -c  Create a new file.
     -n  Don't update file; display results on stdout.
     -m  Force MD5 encryption of the password.
     -d  Force CRYPT encryption of the password (default).
     -p  Do not encrypt the password (plaintext).
     -s  Force SHA encryption of the password.
     -b  Use the password from the command line rather than prompting for it.
     -D  Delete the specified user.
    On Windows, NetWare and TPF systems the '-m' flag is used by default.
    On all other systems, the '-p' flag will probably not work.
    
    
    4 创建基于http协议访问的用户授权文件
    cat /svn/svndir/authz
    [test3:/]
    test1=rw
    
    5 svn目录授权
    chmod 755 /svn/svndir
    chown -R apache:apache /svn/svndir
    
    6 启动
    service httpd start
    

    此时可以通过
    http://192.168.1.206/svn/test3
    在浏览器中输入用户名密码访问

    将windows上Repositories迁移到linux机器上

    直接将windows下Repositories目录下的数据打包迁移到linux下的Repositories即可访问,但是用户名和密码不可以迁移,需要重建

    注意

    1 注意权限为问题,如果/svn/svndir属主不是apache,会一直访问拒绝访问
    2 svn协助与http协议
    svn协议,用于客户端使用svn://方式访问版本库,而mod_authz_svn模块让客户端可通过Apache访问版本库,它们分别使用不同的服务:svnserve、httpd进行访问。由于用户、组权限不同,权限管理方式也不相同,因此,不建议同时启动两种访问方式。
    而易用性,管理方便的角度来分析,Apache以,mod_authz_svn模块的方式访问版本库会更多人选择。(mod_authz_svn方式,使用80端口访问,并且提供https等加密传输,用于用户信息验证的密码保存方式不是明文的)

    相关文章

      网友评论

          本文标题:windows下svn迁移到linux

          本文链接:https://www.haomeiwen.com/subject/lzboultx.html