SVN遷移歷史日誌記錄筆記

2021-09-19 17:42:17 字數 1622 閱讀 4873

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...