簡體   English   中英

使用reposurgeon將svn repo轉換為git

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM