svn库镜像

  最近项目svn资源库机器因硬件问题挂掉,之前以为raid做成功,结果等机器挂了才发现原来raid没做成功导致部分资源入库丢失,等切换svn服务器后,还需要再次做提交同步,工作量巨大!!!

  其实svn提供了主/从式镜像备份,就是master上有commit时自动同步到slave上,这样一台机器挂掉不至于提交的资源丢失。其实很简单就是通过post-commit来完成。

假设存在project1、project2,为让project2跟project1同步。

1、在project2的hooks目录下建立一个pre-revprop-change.bat空文件
  其中project2是目标的版本库,而project1是源版本库。其中的目标版本库必须为空,而且必须允许修订版本属性的修改,也就是在目标的版本库的hooks目录里添加一个文件pre-revprop-change.bat,内容为空即可。
2、svnsync.exe init https://youbitian.adin.kingsoft/svn/project2 https://youbitian.adin.kingsoft/svn/project1


  做步骤1,就不会出现以下报错
svnsync: E175002: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svnsync: E175008: At least one property change failed; repository is unchanged
svnsync: E175002: Error setting property 'sync-lock':
Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook


3、svnsync sync https://youbitian.adin.kingsoft/svn/project2

4、在project1的hooks目录下建立post-commit.bat
内容:
echo off
set SVN_HOME="D:\\Program Files\\VisualSVN Server"
%SVN_HOME%\bin\svnsync sync --non-interactive --username=youbitian --password=xxxxxx https://youbitian.adin.kingsoft/svn/project2

原文地址:https://www.cnblogs.com/coderyoyo/p/svn_sync.html