我們的團隊一直在使用SVN來管理體面大小的應用程序,並且隨着時間的推移,建立了一個相當複雜的分支和標籤層次結構,它遵循SVN存儲庫的基本標準佈局,但是多個嵌套:將複雜的SVN分支層次結構遷移到Mercurial
|-trunk |-branches | |-releases | | |-releaseA | | `-releaseB | `-features | |-featureX | `-featureY |-tags |-releaseA | |-beta | `-RTP `-releaseB |-beta `-RTP
(該功能分支顯然是臨時的分支,但我們必須予以考慮,因爲這將是不可行的在不久的將來在一次關閉所有的)
出於多種原因,主要是因爲合併已成爲越來越多的痛苦,我們認真考慮切換到Mercurial。
我們目前面臨的主要問題是遷移現有的代碼庫而不會丟失我們的歷史記錄。我嘗試了幾種遷移工具(例如,yasvn2hg,hg convert和svn2hg),yasvn2hg是最有前途的,但他們都沒有能夠處理嵌套層次結構,但他們都假設分支和標籤被組織在一個平面目錄中分別。
命名分支之間的選擇或克隆作爲舊SVN分支轉換目標不是在這種情況下的限制因素,因爲任一溶液,將不勝感激。我們目前正在試驗這兩種選擇,以及它們將如何適合我們當前的流程,但尚未決定。我明顯對這個問題的建議或類似設置的體驗感興趣。
那麼,什麼是這樣一個嵌套的SVN分支層次轉換爲Mercurial的最佳方式是什麼?
將一個分支一次轉換爲一個單獨的存儲庫會很煩人,我不確定這是否是正確的方法,這取決於這些工具如何處理歷史合併並需要注意所有其他分支?
嘿我差不多發佈了同樣的問題。自問這個問題以來,如果你決定採用一種解決方案,會很樂意聽到。正如下面在評論中提到的,在我的情況下,每個嵌套分支有一個「克隆」實際上不是一個解決方案,我當然希望找到一種方法能夠將分支導入HG,而無需重複分割數據很多回購。 – 2010-04-01 18:20:30