![](/img/trans.png)
[英]How to skip first N commits when converting svn repo to Git using reposurgeon?
[英]converting svn repo to git using reposurgeon
我正在嘗試使用reposurgeon將svn repo轉換為git。
這是我做的(有一個具有svn名稱的reo.map文件 - > git名稱映射):
svnadmin dump /home/subversion > repo.svn
reposurgeon "verbose 1" "repo.svn" "authors read" "write repo.fi"
reposurgeon運行了好幾個小時(大量交換,因為它是一個12GB的轉儲文件),一切看起來都不錯。 這是我得到的輸出:
reposurgeon: verbose 1
reposurgeon: from repo.svn...copynodes+filemaps+copysets+commits+branches+parents+root+branchlinks+svn-mergeinfo+tagifying+tagify-empty+polishing+canonicalizing+resets+debubbling+renumbering+14163 revisions (1/s)...(9810.18 sec) done.
reposurgeon: r13: deleting parentless zero-op commit.
.
.
.
reposurgeon: r13726: deleting parentless zero-op commit.
2012-12-24T01:16:23Z * repo.svn
此時reposurgeon就坐了。 我不知道在這一點上在哪里尋找解決方案,因為它從來沒有給我一個錯誤信息。 任何建議都是最受歡迎的。
它已成功導入存儲庫,但隨后它將處理authors read
命令,但您沒有指定文件。 此時它實際上正在等待文件出現在stdin上。 使用authors read <author-map
,其中author-map是包含地圖的文件的名稱。
出於類似的原因,您還需要將write命令更改為write >repo.fi
如果您考慮使用reposurgeon和git-svn的替代品,請查看SubGit 。
$ subgit configure /home/subversion
#edit /home/subversion/conf/subgit.conf to set 'core.authorsFile' option to path to "repo.map" file
$ subgit install /home/subversion
$ subgit uninstall --purge /home/subversion
轉換后的存儲庫將位於/home/subversion/.git目錄中。 作為獎勵,你將把所有svn:ignore和svn:eol-style屬性轉換為他們的Git模擬。
通常,SVN存儲庫比相應的轉儲文件大約緊湊4倍,因此原始存儲庫的轉換可能比基於轉儲的轉換更快。
我選擇使用git-svn,如果你考慮替代reposurgeon。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.