2012-06-04 116 views
28

編輯:解決方法。 現在我們明白了這個問題,這裏是解決方案:做爲什麼「git svn fetch」命令似乎卡住了,什麼都不做?

git svn fetch -r REVISION:HEAD 

,其中修訂了svn的數量提交這個分支創建的。


我一直幸福使用Git SVN對我的項目有一段樹幹工作,但現在我還需要跟蹤的分支。

我試圖初始化新的存儲庫這樣做與

git init 
git svn init https://svnserver/svn/repository 

然後我編輯的本地配置文件,以反映我的svn庫的結構:

[svn-remote "svn"] 
    url = https://svnserver/svn/repository 
    fetch = path/to/trunk:refs/remotes/trunk 
    branches = path/to/branches/*:refs/remotes/branches/* 

然後我跑

git svn fetch 

而這個命令少了點什麼:

  • 它不會終止
  • 它不會在控制檯輸出
  • 它不使用任何CPU寫任何東西,也沒有創建文件

我放棄前十分鐘

後我已經檢查過svn存儲庫正在工作,因爲git svn fetch在我的git存儲庫中完美工作,我只跟蹤中繼。

這是一個錯誤還是我錯過了什麼?

+0

節省時間,謝謝!與-r幾乎是即時的,即使我們的svn回購有幾十個活躍的分支機構和悠久的歷史(超過20k次提交)。 – djKianoosh

回答

22

它在獲取第一個相關提交後變得冗長。

但是,直到它提取該提交,您可以通過檢查.git\svn\.metadata文件確保命令正常工作。

+1

它可能需要永遠看到「第一個相關的提交」,所以你需要耐心等待並離開它,直到你看到一些東西......不要覺得無聊,像我一樣CTRL + C! :D –

+0

檢查OP所做的編輯:如果您知道「第一個相關提交」的修訂號,則可以加快此過程。 –

+0

在我看來,這個過程什麼都不做。我在SVN回購所在的機器上運行這個,但CPU甚至沒有達到5%左右。就好像在流程開始時有一個小時的睡眠聲明。 –

2

嘗試添加--log-window-size=5000參數。

如果repo有大量提交,git-svn默認會一次通過它們100。撞上它可以極大地提高速度。

0

我已將fetch屬性更改爲:refs/remotes/git-svn,它適用於我