1.找到需要遷移的目錄,比如我要遷移uboot的目錄:
svn://***x/u-boot
2.檢視該目錄的日誌資訊,記錄下最新的版本,以及最老的版本:
比如最新的版本為:36954;最老的版本為:31725
3.登陸linux伺服器建立臨時工作目錄:
mkdir svn_test
cd svn_test
4.把指定svn目錄dump下來:
svnrdump dump svn://***x/u-boot -r 31725:36954 > main.dmp
指定日誌版本:-r 31725:36954 (起始版本:終止版本)
生成的dump檔案: main.dmp
注意:以上方法是針對版本跨度不大的情況,即起始版本31725和結束版本36954相差不大的情況(不超過10000個版本的跨度),可以一次性dump下來,當跨度比較大時,最好分段dump,否則伺服器會半天響應不過來;
比如上面的uboot我採用分段dump下來:
我先dump第一段:
svnrdump dump svn://***x/u-boot -r 31725:34725 > main1.dmp
注意第一段dump不需要加--incremental關鍵字
然後我在dump 第二段:
svnrdump dump svn://***x/u-boot -r 34726:36954 --incremental > main2.dmp
5.把dump下的檔案上傳到新svn路徑:
svnrdump load svn://***/new_path/uboot < main.dmp
執行命令後此時若出現:沒有pre-revprop-change勾子
則需要建立個pre-revprop-change檔案,檔案內容為:
則需要管理員把pre-revprop-change放在目標svn的hook目錄;
如果目標svn是windows檔案系統的話,則需要將pre-revprop-change加個.bat字尾
分段式dump的話如下:
svnrdump load svn://***/new_path/uboot < main1.dmp
svnrdump load svn://***/new_path/uboot < main2.dmp
若此時出現:failed to get lock on destination repos, currently held by....的提示
是因為執行了某些非法操作,導致目標svn被鎖住,此時執行:
svn proplist --revprop -r0 svn://***/new_path/uboot :檢視目標svn鎖標誌;
svn propdel --revprop -r0 svn:rdump-lock
svn://***/new_path/uboot(改為自己實際目標svn)
鎖即被解除;
6.到指定目錄檢視是否上傳成功,日誌資訊是否都存在
svn遷移帶日誌到git
進入需要匯出目錄的上一級目錄 git svn clone有了這一步就可以在命令列像操作git一樣操作svn了。如果對git svn的命令不習慣,可以試試用工具。關聯遠端git庫 推送 到 git master分支 git push u origin master當前所在分支為master git p...
SVN及日誌遷移到Gitlab
1 svn準備遷移到gitlab的工作 1.1 將svn提交記錄匯出,如下圖操作 svn log log.txt 匯出後將生成乙個提交記錄的log.txt的檔案,檔案格式如下所示 1.2 然後建立svn2git.txt檔案,作用是svn使用者名稱與git使用者名稱的乙個對映檔案。格式如下 示例 we...
svn遷移到git(保留提交記錄)
各種原因我們可能會遇到遷移svn到git的情況,下面介紹遷移的過程 yum y install git svn 建立乙個檔案users.txt 內容如下 zhangsan zhangsanjerry jerrytom tomgit svn clone no metadata authors file...