2013-08-27 173 views
0

上週,我將我們的svn倉庫轉換爲git,大約需要4天的時間才能運行。我們最初的計劃是在週末運行腳本,並在週一切換到git,但由於我們存儲庫的大小,這證明是不可能的。是否有可能添加svn repo轉換爲git後提交的svn提交?

我們現在考慮保持在線測試運行,並將最新的svn提交添加到git,但我遇到了一些問題。我沒有那麼多的經驗,所以我發現的所有命令都歸功於SO和Google。

最後一次提交換算成git的是69488,所以我必須得到每一個承諾,因爲我69489.做的第一件事是(謝來this thread):

git svn clone -r69489 svn-repo 
cd repo 
git svn rebase 

但是現在我敢很多卡住了。合乎邏輯的下一步(在我的腦海)似乎是要告訴新的本地git倉庫在遠程到位桶倉庫是和合並兩個:

git remote add origin bitbucket-path 
git pull origin master 
git push origin master 

但是當我這樣做,我得到合併衝突,可以」不會自動解決,這對我來說似乎很陌生,因爲git應該知道該怎麼做......我是否錯過了某些東西,或者我將不得不手動通過大量文件來消除衝突?

回答

1

你不必做任何特別的事情。爲初始導入做一個git svn init ... && git svn fetch ...。之後,您可以撥打git svn rebase,它只是將新的提交添加到git存儲庫。

+0

'git svn fetch'需要很長時間才能運行我們的存儲庫,這正是我們試圖避免的。有沒有辦法做到這一點,但只有最後n版本?我可以通過'git svn clone -rN'下載這些文件,但我似乎無法將這些更改提交到git repo。 –

+1

您只調用'git svn fetch' _once_。最後的修訂版本會被'git svn rebase'獲取,而且這通常很快。 –

+0

這就是我所做的,但每次都從頭開始。我發現的腳本將svn轉換爲git而不留下任何svn文件夾或引用。那可能是它每次從r1開始的原因嗎? 就像我說的,我對此很新。謝謝您的幫助。 –