2010-07-06 101 views
0

我有一個SVN分支,有幾個提交,我想導出併合併到一個基於相同代碼(但沒有更改)的git存儲庫。我怎麼做?從SVN獲取修訂並與git存儲庫合併?

我試着用git svn創建一個新的git repo,然後合併到git repos在一起,但是標記衝突文件中的每一行作爲衝突。我可以強迫它運行適當的差異,而不是將所有內容都標記爲衝突嗎?

更新。我最終創建了一個分支並從svn複製粘貼文件,然後與另一個分支合併。討厭,但它的工作。

回答

1

你將需要閱讀大量的文檔,但我可以嘗試指出你在正確的方向。至少,我希望這是正確的方向......

在使用git svn創建git存儲庫後,可以使用git fetch將svn更改作爲自己的分支引入git存儲庫。然後,您可以使用git filter-branch --parent-filter將相應的svn commit的父級設置爲適當的git commit。然後,如有必要,可以使用git rebase來清理提交。

+0

爲什麼不能在所有文件上運行diff並找到更改?或者我可以創建補丁文件並逐個應用它們嗎? – 2010-07-06 06:29:58

+0

那麼,通過我所描述的,它會運行一個diff,因爲它需要知道哪個父級提交需要進行區分。創建補丁文件並應用它們應該可行,但我認爲git補丁包含了它們基於哪個git commit的元數據。如果是這樣的話,你需要確保你適當地設置第一個補丁的父提交。 – 2010-07-07 02:48:53