此問題與this one和this one類似,但情況稍微複雜一些。git-svn如何與svn版本庫改變佈局?
幾年前我開始使用私人svn存儲庫(我主要用於共享配置文件之類的各種機器之間)。我並不太在意倉庫的佈局(分支,去哪等),所以它隨着時間的推移發生了很大的變化。這當然是一個錯誤,但現在已經太晚了。最近,我已經將它遷移到更標準的svn trunk/branches/tags佈局,主要是使用svn move命令,但是舊的歷史記錄當然仍然存在於存儲庫中(坦率地說,這有點亂) 。
我現在想永久地將其轉換爲git存儲庫。我嘗試過使用git-svn,但它似乎只處理遵循一致的trunk /分支/標記約定的情況(是的,你可以提供其他名稱,但每個只有一個,它就會出現)。我的存儲庫的很多歷史記錄都有效地存儲在存儲庫的根目錄中,例如,標記爲/和分支/爲子目錄。
處理所有這些問題的最佳方法是什麼?理想情況下,我希望git倉庫最終能夠以某種方式訪問所有歷史記錄,即使分支和標記在git中沒有正確表示爲第一級概念。
更具體地說,svn-git如何處理它所提供的trunk/branches/tags子目錄之外的文件?到目前爲止,我的觀察結果是,它有時會錯過它們(絕對不行),有時會將它們添加到新的存儲庫中。
任何想法將不勝感激。
你問它會如何表現,也說你已經試過了。您觀察到的不良行爲的具體示例會很有幫助。 Git通常非常善於處理複雜的合併,例如,在同一提交中更改和移動子樹。 – 2009-07-20 18:26:48