最近在遠程服務器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資源庫中。