服务器环境: Windows Server 2012 


软件版本: VisualSVN-Server-3.4.2-x64.msi


 


旧SVN安装路径: D:\Program Files\VisualSVN Server\bin


旧SVN仓库路径: D:\Repositories


旧SVN仓库备份路径: D:\VisualSVN_bak


 


新SVN安装路径: C:\Program Files\VisualSVN Server\bin


新SVN仓库路径: D:\Repositories


旧SVN仓库备份路径: D:\VisualSVN_bak


 


今天进行了 SVN 服务器间迁移, 遇到了一点问题写下来, 以便其他遇到此问题的朋友快速解决问题.


 


先简单写一下操作步骤.


 


分为三步:


 


一. 导出版本, 复制导出的版本文件到目标服务器


二. 在目标服务器SVN新建库, 导入版本到目标服务器. 


三. 迁移用户. 


 


一. 导出版本到备份文件. 


 


1. 打开 命令提示符窗口,  定位到 SVN安装目录的bin文件夹下.


d:


cd D:\Program Files\VisualSVN Server\bin

2.使用 svnadmin dump 命令备份版本. 以下命令是将 D:\Repositories\TEST 导出到D:\VisualSVN_bak\TEST.dump文件.



svnadmin dump D:\Repositories\TEST > D:\VisualSVN_bak\TEST.dump

 


遇到的一个问题: 



svnadmin: E205000: Try ‘svnadmin help’ for more info 


svnadmin: E205000: Too many arguments


参数过多, 此错误是因为路径中存在空格, 比如 D:\Program Files\VisualSVN Server 这样的路径就会出现此错误, 解决办法就是修改路径为没有空格的路径.



 


3. 下图为导出的过程, 导出后将 D:\VisualSVN_bak下的 TEST.dump 复制到目标服务器D:\VisualSVN_bak.




二. 在目标服务器SVN新建库, 导入备份版本到目标服务器.  


 


1.在目标服务器SVN新建库. 使用以下命令. 其中 D:\Repositories\ 为库的路径, TEST为库名称.


svnadmin create D:\Repositories\TES


2. 导入备份版本. 使用以下命令. 其中  D:\Repositories\TEST 版本库路径.  D:\VisualSVN_bak\TEST.dump 为旧服务器导出的版本备份文件.


 


svnadmin load D:\Repositories\TEST < D:\VisualSVN_bak\TEST.dump


完成后对比一下源服务器 和 目标服务器的库文件及版本数量是否一致.


三. 迁移用户.  将源服务器SVN的仓库目录下的 htpasswd 和 VisualSVN-GlobalWinAuthz.ini 文件复制到目标服务器SVN仓库目录下覆盖.