注:教程中的命令为我的服务器上的路径,请根据实际情况修改为自己的。

新服务器VisualSVN Server的版本需要高于或等于旧服务器版本,另外请不要升级到4.0以上版本,VisualSVN Server4.0以上版本免费版只能创建15个用户。

1.找到装有原始svn服务器,先停止VisualSVN Server服务,防止转移过程中有人提交。然后找到VisualSVN Server的安装目录下的bin文件夹,将其拷贝

C:\Program Files\VisualSVN Server\bin

2.打开cmd命令,输入cd 刚才拷贝的bin文件夹的路径,回车

cd C:\Program Files\VisualSVN Server\bin

3.输入svnadmin dump 原始仓库存放路径 >备份仓库将要存放的路径(以dump的格式进行保存地址)

C:\Program Files\VisualSVN Server\bin>sanadmin dump C:\Repositories\jyjf >d:\svntest\test.dump

d:\svntest是自己在D盘新建的文件夹,用来保存备份文件
4.打开目标服务器,找到VisualSVN Server的安装目录下的bin文件夹,将其拷贝
打开cmd命令,输入cd 拷贝的bin文件夹的路径,回车
5.输入 Svnadmin load 将要导入版本库的地址(新服务器版本库的地址) <刚才从原始服务器上拷贝的dump文件存放路径\*.dump

C:\Program Files\VisualSVN Server\bin>svnadmin load C:\Repositories\jyjf <d:svntest\test.dump
svnadmin dump可能会碰到的坑:
1.–incremental参数:
如果版本库太大,需要分批次导出时,从第二个导出开始,就需要加入此参数。否则svnadmin load的时候,就会报错,提示版本库已存在。切记,切记!!
2.svnadmin load时 : 当前版本库不存在相对源版本
这个错误发生在load时。因为svnadmin dumps时导出的文件版本中,可能包含了一个tag,或者branch,也就是并没有从客户端进行的操作。那么一旦它所依赖的版本,并没有在svnadmin dumps -r a:b中的a~b范围内,就会报错,从而导致load的时候失败。所以如果不是把库全部导出时,一定要检查是否存在版本依赖关系。否则,很可能高高兴兴导出完后,导入的时候失败。如果这时候源数据已经不在,就只能傻眼了。。
3.如果版本非常多,使用此方法非常耗时,而且dump出来的文件非常大,推荐打包整个仓库进行搬迁速度更快。