2017-03-22 85 views
0

我在非標準的存儲庫上運行'git svn clone',它似乎卡在過程中的某個地方。它確實執行了查找所有分支和標籤的工作,但是當達到某個修訂版時,它已經停止輸出任何東西,並且現在已經使用了我的CPU的1個核心大約20個小時。git svn clone仍在執行工作嗎?

最後一行輸出是:

r2007 = f4ccc32aa2c1c504d7baca98a4efe628be3d6485 (refs/remotes/origin/MySVNRepo) 

是否有確定它是否還在做着有意義的工作,或者如果它是徒勞隨時恭候的方法嗎?甚至是什麼可能導致它卡住?

我試過在.git文件夾上運行du -s,但它似乎並沒有改變大小。

+0

這是關於一次性遷移,你以後只使用Git,還是你想從你的Git克隆提交回SVN? – Vampire

+0

這是一次性遷移,從SVN轉移到Git – binarylegit

回答

0

對於一次性遷移git-svn而不是轉儲存儲庫或存儲庫部件的正確工具。如果你想用Git作爲現有SVN服務器的前端,這是一個很好的工具,但是對於一次性轉換,你應該使用而不是使用git-svn,但是正確的svn2git更適合這種使用情況。

有很多工具叫svn2git,可能最好的一個是從https://github.com/svn-all-fast-export/svn2git的KDE。我強烈建議使用svn2git工具。這是我所知道的最好的,並且它對你的規則文件可以做的非常靈活。

您將可以輕鬆配置svn2git的規則文件以產生您想要的結果,而且速度更快。

如果您不是100%關於存儲庫的歷史記錄,svneverever from http://blog.hartwork.org/?p=763是一個很好的工具,用於在將SVN存儲庫遷移到Git時調查SVN存儲庫的歷史。


即使git-svn比較容易下手,這裏是爲什麼使用KDE svn2git代替git-svn優越,除了它的靈活性,一些深層次原因:

  • 歷史重建更好的和更清潔通過svn2git(如果使用正確的),這是更復雜的分支和合並的歷史尤其如此
  • 標籤是真正的標籤,而不是Git分支
  • git-svn標籤包含一個額外的空提交這也使得分支機構他們不要的部分,所以直到你給--tags的命令,默認情況下只標記指向獲取分支還端來一正常fetch不會得到他們。有了正確的svn2git標籤是屬於他們的地方
  • ,如果你在SVN改變佈局,可以輕鬆地與svn2git配置此,與git-svn你將失去​​歷史最終
  • svn2git你也可以拆分一個SVN倉庫分成多個Git倉庫容易
  • 或結合在相同的SVN根多個SVN儲存庫到一個Git倉庫容易
  • 轉換是用正確的svn2git速度比與極大數倍git-svn

你看,爲什麼git-svn更糟,KDE svn2git更好。 :-)

相關問題