[英]Can I make git-svn import a Subversion repository which itself contains git repositories
我在SVN中有一個帶有plugins文件夾的項目。 幾個plugins文件夾是git存儲庫-我使用git clone
將它們添加到了我的plugins文件夾中。
這對我來說一直很好,但是現在我希望使用git-svn
將SVN存儲庫遷移到git:
git svn init http://path/to/my/repo --no-metadata
git config svn.authorsfile ~/authors.txt
git svn fetch
這對於我所有在我的plugins文件夾中沒有git repos的早期版本都可以正常工作,但是當它到達包含git存儲庫的第一個版本時,它將失敗並顯示以下錯誤:
trunk/plugins/my_plugin/.git/HEAD was not found in commit
ae9ad0ab7cebd144c823d90d43cdab2b30d13f9e (r2259)
有沒有辦法解決這個問題,讓我完全導入我的存儲庫,也許是通過排除駐留在SVN存儲庫中的任何.git文件夾?
事實證明,我在Ubuntu上使用git-svn 1.5,而在git-svn fetch
上不支持--ignore-paths
標志。 從源代碼構建git 1.6之后,我現在可以運行:
git svn fetch --ignore-paths='\.git'
現在,提取操作將忽略所有.git
文件夾,並將所有SVN歷史記錄成功導入到我的新git存儲庫中。
您可以轉儲當前的svn庫, 過濾掉.git目錄,並基於此過濾的轉儲創建另一個svn庫,並將此新庫用作git庫的基礎。
並行使用git和svn可能很有趣 -您必須用新的gitless替換現有的repo,而缺少的.git目錄可能會帶來麻煩。
我沒有嘗試過,所以您要小心,並要備份。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.