美文网首页
linux系统中svn仓库迁移

linux系统中svn仓库迁移

作者: Acto | 来源:发表于2021-12-24 16:34 被阅读0次

    公司服务器被前面几任开发搞得磁盘只剩下几百M了,服务器里面东西乱七八糟,公司领导不太愿意直接扩容磁盘,而且关键问题是:开发环境、测试环境 、生产环境,共用一台服务器。😂,只能说前任过得太苦逼了(哈哈,话中有话,懂就好)进入正题:

    新服务器svn环境安装

    1、在旧服务器中,使用命令svn --version查看svn版本,例如:

    (base) [root@api svn]# svn --version
    svn, version 1.7.14 (r1542130)
       compiled Apr 11 2018, 02:40:28
    
    Copyright (C) 2013 The Apache Software Foundation.
    This software consists of contributions made by many people; see the NOTICE
    file for more information.
    Subversion is open source software, see http://subversion.apache.org/
    
    The following repository access (RA) modules are available:
    
    * ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
      - handles 'http' scheme
      - handles 'https' scheme
    * ra_svn : Module for accessing a repository using the svn network protocol.
      - with Cyrus SASL authentication
      - handles 'svn' scheme
    * ra_local : Module for accessing a repository on local disk.
      - handles 'file' scheme
    

    2、根据第一步得到的svn版本来安装(根据自己的版本号,自行百度),我这边是直接执行yum安装,刚好是相同版本

    yum -y install subversion
    

    接下来,检查SVN 是否安装成功。

    svn --version   #出现version,表示安装成功 
    

    迁移步骤

    建议迁移的时候,将所有源库SVN所有账号的权限改成只读,或者停掉SVN服务器

    SVN的迁移有两种方式:

    1) dump出源机器SVN的代码库,然后load到新服务器上去。

    2) 使用 svnsync 直接同步源机器代码库。

    比较这两种迁移的方式,我比较推荐第二种,使用svnsync进行迁移。第一种使用dump出源机器代码库,dump完,看了一下dump文件,几十个G,太大了

    下面直接记录下第二种方式迁移的步骤
    1、新服务器:

    svnadmin create /data/svn/www # 创建版本库www
    cd /data/svn/www
    cp hooks/pre-revprop-change.tmpl hooks/pre-revprop-change 
    chmod 777 hooks/pre-revprop-change
    
    vim hooks/pre-revprop-change # 修改最后一行代码,如下
    exit 0
    

    2、具体迁移命令

    svnsync init file:///data/svn/www svn://旧服务器svn地追/www  # 初始化
    svnsync sync file:///data/svn/www # 开始同步数据
    

    PS : 这块需要输入密码验证,新服务器的密码 源服务器SVN的账号密码,此账号应该有仓库所有代码的读取权限


    image.png

    3、等待迁移完成,进行版本校验

    svnadmin verify /data/svn/www
    

    没提示错误,代表迁移成功

    4、关键步骤
    复制旧服务器上的svn仓库uuid到新服务器对应的svn仓库,这样子svn客户端才不会报错

    # 旧服务器
    (base) [root@api svn]# cat www/db/uuid 
    9d0c555b-2354-404e-b7a9-d3e529fcf44f
    
    # 新服务器 
    vim /data/svn/www/db/uuid
    # 用旧服务器的uuid替换这里的uuid
    

    现在可以去svn客户端测试了

    测试

    关键步骤,将svn工作副本切换指向新服务器,核心命令是

    svn relocate
    

    不同系统不同客户端,操作大同小异,大家自行操作即可

    最后可以测试一下提交svn能不能成功了

    参考:https://blog.csdn.net/liangcl_2018/article/details/79745688

    相关文章

      网友评论

          本文标题:linux系统中svn仓库迁移

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