2012-04-25 125 views
1

我主要有以下git倉庫佈局進口git倉庫提交到SVN

x ---- a -------------- b -------------- c ----> 
     y -- 1 -- 2 -- ┛ z -- i -- j -- ┛ 

其中xyz是初始提交的。我有這些多個初始提交的,因爲我使用

git fetch git://github.com/<user>/<repo>.git refs/heads/master:refs/heads/<repo> 
git merge --no-commit <repo> 
git read-tree --reset -u HEAD 
git read-tree -u --prefix=lib/<repo> <repo> 
git commit -m "Pulling <repo>" 
git branch -d <repo> 

多次合併多個git倉庫到一個大倉庫。所有子模塊基本上具有相同的文件佈局。

要導入的git回購爲SVN我初始化一個空的svn存儲庫,並通過

git svn clone http://some/svn/repo/my-project 

克隆它,然後我試圖

cd my-project 
git remote add dev /path/to/working/git/big-repository 
git pull dev master 
git svn rebase 

但底墊失敗,因爲一些合併出現錯誤發生是因爲所有子模塊的頂級文件都是相同的(pom.xml

有沒有什麼辦法可以導入git倉庫nto svn保持歷史?

回答

0

希望別人能提供更優美的答案,但如果問題確實是這一個衝突的文件,那麼您可以使用git filter-branch從項目歷史中刪除文件。

This page有一個例子。

+0

我不認爲就是這樣。每個子模塊具有相同的佈局(在其根目錄中具有'pom.xml'),但是它們結束於big-repo中的不同目錄中。但不知何故,當svn rebIN時,他們最終在同一個目錄中。我認爲這是因爲多次初始提交。 – oschrenk 2012-04-26 09:51:00