2009-06-04 58 views
1

我有一個SVN中有一個插件文件夾的項目。幾個插件文件夾是git倉庫 - 我使用git clone將它們添加到我的插件文件夾中。我可以讓git-svn導入一個本身包含git存儲庫的Subversion版本庫

這一直工作很適合我,但現在我正在尋找遷移我的SVN倉庫使用git-svn與git:

git svn init http://path/to/my/repo --no-metadata 
git config svn.authorsfile ~/authors.txt 
git svn fetch 

這工作得很好,其沒有git的回購協議我所有的早期版本在我的插件文件夾,但是當它擊中包含一個Git倉庫失敗,出現以下錯誤第一次修訂:

trunk/plugins/my_plugin/.git/HEAD was not found in commit 
ae9ad0ab7cebd144c823d90d43cdab2b30d13f9e (r2259) 

是否有辦法解決,讓我完全導入我的倉庫,也許排除任何。 git文件夾哪個resi在SVN倉庫中?

回答

4

事實證明,我在Ubuntu上使用git-svn 1.5,它不支持git-svn fetch上的--ignore-paths標誌。從源代碼構建混帳1.6後,我現在可以運行:

git svn fetch --ignore-paths='\.git' 

的取現忽略所有.git文件夾,併成功導入所有SVN歷史上我的Git倉庫。

1

您可以將當前的svn repo,filter轉儲出.git目錄,並根據此過濾轉儲創建另一個svn repo,並使用此新的作爲git repo的基礎。

git和svn的並行使用可能會是有趣 - 您必須用新的gitless替換現有的repo,而缺少的.git目錄可能會導致一些麻煩。

我還沒有試過這個,所以你會想要小心,並有備份。

0

由於Git的工作方式,超過1個.git文件夾會導致你的問題(呃,你已經知道嘿嘿)。

你有2種選擇: - 如果你不關心故事,做最簡單的方法:從SVN中刪除。git的文件夾和移動與git整個項目

  • 如果你在乎故事,難道這樣做:檢查這link並按照步驟

我知道我的團隊領導有一些問題,但它的工作原理。

編輯:我忘了提及另一種方式:您可能會使用Bazaar來拉動項目,因爲它與兩個項目交互。不知道這是否會更容易,雖然