WindowsVisualSVN迁移

SVN迁移的背景

公司现存的SVN的物理机另有他用,需要把上面的VisualSVN迁移到虚拟机上面(搭建的WindowsServer机器)。

SVN现状

  • windowServer 机器
  • 内容大概100G左右

移植问题

  • 平时只是使用SVN,没有接触SVN的搭建安装;
  • 数据量过大,如何迁移复制的问题;

移植步骤

  • 移植方案
    • 搭建一个新的WindowsVisualSVN服务;
      1. 下载地址 WindowsVisualSVN地址
      2. 安装参考正常windows软件安装步骤;
    • 将原Repository复制到新的机器上面,然后使用VisualSVN打开新的Repository即可。
      1. 复制的数据量100G左右,过大,采用共享文件夹的形式,在老服务器中,将原Repository文件夹作为分享文件夹。
      2. 在新机器中,开始-->运行,输入\ip地址,然后输入目标机器的用户名密码,即可查看到共享文件夹,将其文件夹复制过来即可。
      3. 复制完成后,查看新的svn发现已经完成,因为是使用整个Repository迁移的方法,所以用户和权限组等和原来一样,不需要调整。
  • 移植出现的问题
    • 移植后,新SVN访问没有问题,提交的时候出现了拒绝访问的错误,调整一下VisualSVN仓库的文件夹权限即可。

移植后的思考

  • SVN的热备份
    在迁移的过程中,发现原SVN的备份机制是,靠人工手工定期执行一个备份脚本(脚本就是将原Repository复制一份到另外一个文件夹中)。
  • SVN的双击热备份
    设定,主力机为A,备份机为B。
    1. 两个机器中,均设置一个可读写用户;
    2. 在备份库中,增加一个hook,pre-revision-change,内容设置为exit-0
    3. 主力机A中执行命令;
    4. 通过以上步骤,可以进行svn同步,但需要手工执行命令,实时热备份的话,需要在主力机上,增加一个hook,
      #格式 svnsync init 目标库(B) 源库(A) --username 用户名 --password 密码
      #用户名密码为目标库的账号、密码
      #A和B的格式为,仓库地址如http://ip/svn/Test
      svnsync init B A --username username --password password
      #执行同步命令,
      svnsync sync B --username username --password password
      #hock内容(在post commit钩子上增加)
      echo off
      set SVN_HOME="C:\Program Files\VisualSVN Server"
      %SVN_HOME%\bin\svnsync sync A --config-dir "D:\Repositories\Test" --source-username userName --source-password password --sync-username userName --sync-password password
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。