最近在远程服务器192.168.2.55上搭建了个VisualSVN。
老大的要求:希望将其他服务器上的svn项目保留版本变更,直接迁移到192.168.2.55上。
于是研究了下VisualSVN的两种迁移方式,并均实验可行。
本人使用的VisualSVN版本:VisualSVN-Server-2.7.6
本人的本地机器系统:win7 32bit
远程服务器系统:windows server2008 R2 64bit
一、使用VisualSVN自带的命令行操作工具:svnadmin的dump和load命令。
VisualSVN的bin目录:D:\Program Files\VisualSVN Server\bin
VisualSVN的Repositories目录:E:\Repositories
操作步骤:
1、以管理员身份运行cmd,进入bin路径。
2、将需要迁移的svn项目通过svnadmin的dump命令迁移到所需要保存的目录,若不填路径,则默认保存在VisualSVN的bin目录下。
命令格式:svnadmin dump E:\Repositories\MyApp > E:\Subversion\svn_all_20140609.dump
3、在目标服务器上的VisualSVN中,新建一个空的资源库。如:TestAdmin.
4、将生成的dump文件拷贝到目标服务器上,使用svnadmin 的load命令,将dump文件导入到资源库中。
命令格式:svnadmin load E:\Repositories\TestAdmin < E:\svnbackup\svn_all_20140609.dump
5、顺利将本地的svn项目迁移到192.168.2.55上。
二、使用VisualSVN的svnsync命令。
1、在目标机器上创建一个空的资源库,如:TestSync.
2、修改E:\Repositories\TestSync\hooks下的pre-revprop-change.tmpl文件,将最后一行的"exit 1"改成"exit 0".
3、在E:\Repositories\TestSync\hooks下新建一个pre-revprop-change.bat文件,该文件的内容只有一句话:"exit 0".
4、初始化资源库命令:svnsync init file:///E:/Repositories/TestSync https://192.168.2.55/svn/AppDump
5、同步资源库命令:svnsync sync file:///E:/Repositories/TestSync
6、顺利将192.168.2.55上的项目迁移到本地的svn资源库中。