在Windows上同步SVN代码库到备份SVN机器上

SVN源库IP: 192.168.0.200
SVN目标库(备份库)IP:192.168.0.62
visualSVN Server版本:VisualSVN-Server-3.9.5-x64.msi

1、 在目标库的机器上安装好SVN环境,尽量与源库SVN版本一致吧,安装省略。。。
安装VisualSVN-Server-3.9.5-x64.msi需要几个地方注意下:
(1)、安装的过程中选择标准模式吧, 创建用户个数不受限制,只是部分功能受限了但够用。
(2)、千万不要下载VisualSVN-Server 4.0以上的版本安装,因为免费只能创建15个用户。
这里默认你源库主机上已经安装过了,就不管你是否安装了,只是单独做实验的用户那就都要安装了,自行根据情况安装吧。
2、 SVN目标库主机上安装完毕后,在目标库上创建一个lx 库,然后接着在lx文件夹下的hooks文件夹里的新建个pre-revprop-change.bat。
内容如下:
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0
3、 然后进行初始化同步执行命令(在cmd下执行)
svnsync init file:///D:/Repositories/lx https://192.168.0.200:443/svn/lx/
或者
svnsync init https://192.168.0.62/svn/lx https://192.168.0.200:443/svn/lx/

注意第一次执行初始化,因为用到https协议会提示你是否同意协议,选择 p 回车就可。

参考截图:
在Windows上同步SVN代码库到备份SVN机器上

4、 进行项目同步命令
Svnsync sync file:///D:/Repositories/lx
或者
svnsync sync https://192.168.0.62/svn/lx

截图如下:
在Windows上同步SVN代码库到备份SVN机器上

问题:C:\Users\Administrator>Svnsync sync file:///D:/Repositories/lx
svnsync: E170013: Unable to connect to a repository at URL 'file:///D:/Repo
ies/lx'
svnsync: E180001: Unable to open repository 'file:///D:/Repositories/lx
svnsync: E160043: Expected FS format between '1' and '7'; found format '8'

若是出现如上问题,
解决方法如下2种:
1、 换IP地址同步:svnsync sync https://192.168.0.62/svn/lx
2、 直接修改D:\Repositories\lx\db\format文件,为1-7之间的数值,修改个7就好。
注意不要用记事本打开,用notepad++开发工具之类的记事本打开,然后需要修改下format文件属性去掉只读后再改(修改属性Windows的右键属性就可,学计算机的人都懂的吧),不然没有权限编辑。修改完毕权限修改回来,为只读。

同步成功!其他新的项目也同上 类似2 、3、4 步骤操作

后期若是要切换到目标库上使用,以防之前客户端重新update是因为uuid不一样导致无法更新等问题,若是重新chectout版本改问题可无视

若是非要保持原来已经拉下来的版本文件上进行update等操作(这种情况只能是在相同的SVN域名或者IP情况下才能如此保持一模一样的才行),那就必须把切换的目标库上对于的版本库UUID更改为之前源库上用的UUID才行。

相关查询UUID命令及修改UUID方式如下:

查询UUID命令 (t2为你的版本库路径下的项目目录)
svnlook uuid D:\Repositories\t2
源库和模板库上都可以用以上命令

若是在模板库上去查询源库的可以用
svn proplist -v --revprop -r0 https://192.168.0.62/svn/t2

显示的内容如下(参考):
Unversioned properties on revision 0:
svn:date
2019-06-21T02:09:13.987543Z
svn:sync-from-url
https://192.168.0.200/svn/t2
svn:sync-from-uuid
27b48cb4-c766-3641-acf0-8e242da8b4b8
svn:sync-last-merged-rev
1

修改UUID的命令为:
C:\Users\Administrator> svnadmin setuuid D:\Repositories\t2 27b48cb4-c766-3641-ac
f0-8e242da8b4b8
注意:只能在目标库CMD上执行修改UUID命令
最好在之前的