SVN迁移历史日志记录笔记
1.找到需要遷移的目錄,比如我要遷移uboot的目錄:
svn://xxxx/u-boot
2.查看該目錄的日志信息,記錄下最新的版本,以及最老的版本:
比如最新的版本為:36954;最老的版本為:31725
3.登陸linux服務器創建臨時工作目錄:
mkdir? svn_test
cd svn_test
4.把指定svn目錄dump下來:
svnrdump? dump??svn://xxxx/u-boot? -r?31725:36954? >? main.dmp
指定日志版本:-r 31725:36954 (起始版本:終止版本)
生成的dump文件: main.dmp
注意:以上方法是針對版本跨度不大的情況,即起始版本31725和結束版本36954相差不大的情況(不超過10000個版本的跨度),可以一次性dump下來,當跨度比較大時,最好分段dump,否則服務器會半天響應不過來;
比如上面的uboot我采用分段dump下來:
我先dump第一段:
svnrdump? dump??svn://xxxx/u-boot? -r?31725:34725 >? main1.dmp
注意第一段dump不需要加--incremental關鍵字
然后我在dump 第二段:
svnrdump? dump??svn://xxxx/u-boot? -r?34726:36954 --incremental >? main2.dmp
5.把dump下的文件上傳到新svn路徑:
svnrdump load svn://xxx/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://xxx/new_path/uboot < main1.dmp
svnrdump load svn://xxx/new_path/uboot < main2.dmp
若此時出現:Failed to get lock on destination repos, currently held by....的提示
是因為執行了某些非法操作,導致目標svn被鎖住,此時執行:
svn proplist --revprop -r0?svn://xxx/new_path/uboot? :查看目標svn鎖標志;
svn propdel --revprop -r0 svn:rdump-lock svn://xxx/new_path/uboot (改為自己實際目標svn)
鎖即被解除;
6.到指定目錄查看是否上傳成功,日志信息是否都存在
總結
以上是生活随笔為你收集整理的SVN迁移历史日志记录笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设备树之GPIO和中断实例
- 下一篇: Linux下GBK文件编码批量转换UTF