2011-03-22 67 views
4

我們已經有了一個非標準的svn設置,看起來像這樣:轉換非標準的svn與git

Root 
|----->Trunk 
|  |---->Projects 
|  |  |---> Project 1 
|  |  |---> Project 2 
|  |  |---> Project 3 
|  |---->Libraries 
|  |  |---> Library 1 
|  |  |---> Library 2 
|----->Tags 
|  |---->Projects 
|  |  |---> Project 1 
|  |  |  |----> 1.0.0.0 
|  |  |  |----> 1.0.0.1 
|  |  |---> Project 2 
|  |  |  |----> 1.0.0.2 
|  |  |  |----> 1.0.0.3 
|  |---->Libraries 
|  |  |---> Library 1 
|  |  |  |----> 1.0.0.0 
|  |  |  |----> 1.0.0.1 
|  |  |---> Library 2 
|  |  |  |----> 1.0.0.0 
|  |  |  |----> 1.0.0.1 

我已經做了一個git - svn的克隆,但當然沒有標籤工作的(我們在svn沒有分支機構)。 有沒有辦法解決這個混亂成多個git回購?

回答

2

您可以使用git-svn導入。你需要爲每個項目做一次,爲每個圖書館做一次。使用-t -T參數指定中繼線和標籤位置,但省略分支規格。

現在您需要將它們全部與子模塊一起移植。聽起來像一個有趣和具有挑戰性的項目。讓我知道你是否需要幫助。

希望這會有所幫助。

+0

我已經想過,但那將需要永遠。我確定編寫一個腳本來自動化它並不困難,但是我的腳本編寫技能有點生疏。我確信有足夠的時間可以寫一個劇本,但我想我可能會在這裏尋求幫助。 – HellSpam 2011-03-22 21:36:24

+0

我建議在git irc頻道上獲得一些幫助。這是編寫這樣的腳本獲得實時幫助的最佳媒介。使用pastie.org粘貼並顯示腳本以及腳本結果。如果你的歷史對你很重要,那就去做吧。如果你只想不時地檢查它,保留svn版本的備份並在git中創建一個「聚合歷史記錄」,你只需提交標籤,然後爲每個項目提供主幹(不要忘記由超級項目標籤引用的庫)。 – 2011-03-29 05:25:25