2012-11-30 36 views
1

我們有一個我們正在遷移到git的Subversion版本庫。從幾乎標準的svn佈局「git svn clone」

的svn庫的佈局幾乎標準,但在歷史上的一些點一些白癡開發商(好吧,這是我)不小心創建一個目錄,把它稱爲「/富」,在庫的根,而不是的樹幹。

「foo」在搬到「/ trunk/foo」之前,在那裏住了幾個星期。

現在,當我做一個「git svn clone --stdlayout [...]」時,我想念發生在主幹外的歷史部分。

有沒有辦法將「/ foo」的早期更改「合併」到git上的master的歷史記錄中?

* 編輯*或者,有沒有辦法讓那些缺少修訂到分支?

回答

1

我不知道這會得到你想要的東西,但我們歡迎您嘗試:

  1. 克隆foo的文件夾到一個單獨的文件夾。要做到這一點,你必須找出它的原始位置(/ foo)的版本範圍。說這是對轉100創建,在這種情況下被轉移到/主幹/ foo的上轉200的命令應該是:

    git svn clone -r100:200 http://server/foo

你會得到另一個混帳回購協議FOO。

  1. 轉到主git倉庫,並加富作爲遠程:

    git remote add foo /path/to/foo

  2. 獲取:

    git fetch foo

現在你可以設置本地在remotes/foo/master上分支或將它合併到y中我們的主人。 因爲新提交和原始歷史記錄不會有共同的歷史記錄,所以您將不會擁有正確的歷史記錄圖表,但是您將在一個git回購庫中擁有所有的歷史記錄。

相關問題