2012-09-06 88 views
3

我的工作有一個絕對龐大和古老的代碼庫,很快就變得難以將多個項目合併在一起。我試圖將存儲庫(包括它的整個歷史記錄)變成git來解決其中的一些問題。git-svn克隆失敗,perl.exe失敗斷言

但是,嘗試指定命令以確保整個歷史記錄被拉出時,git svn會導致很多問題。

svn存儲庫和執行提取的客戶機都是基於Windows 7的(svn存儲庫位於Server 2008計算機上,但實際上是相同的核心)。

這是到目前爲止,我已經試過了命令:

git svn clone "https://path/to/svn/" "local/repository/" 

問題:這檢索功能庫,但是僅會大致與庫相關聯的,歷史的1/4,由於一些重大的升級大致一年前沒人能給我太多細節。我不知道爲什麼會出現這種突破。令人困惑的是,作爲存儲庫一部分的一些分支與主線幹線沒有任何共同的提交。這非常嚴重地影響了git帶來的合併優勢。

git svn clone -T "https://path/to/svn/trunk/" "https://path/to/svn/" "local/repository" 

問題:沒有分支參數,沒有正確檢索分支。

git svn clone --b="https://path/to/svn/branches" -T "https://path/to/svn/trunk/" "https://path/to/svn/" "local/repository" 

問題:以下錯誤:

subversion/libsvn_subr/path.c:115: failed assertion `is_canonical(component, clen)`. 
0 [sig] perl.exe" 4432 open_stackdumpfile: Dumping stack trace to perl.exe.stackdump 

堆棧跟蹤是提供沒有有用的信息的指針的位置的不可理解的集合。舉例:

Frame  Function  Args 
028F668  74F21194  (000000EC, 0000EA60, 00000000, 0028F6BC) 
+0

另外:我已經嘗試了小的語義修復,比如不使用/使用引號,使用--branches而不是-b,使用或不使用等號,在末尾使用或不使用試驗性斜槓URL等。 – tmesser

回答

-1

您是否檢查過您是否內存不足?原始的克隆真的是內存密集型的。如果你是可以在另一臺機器上做克隆,然後將其傳輸到開發機器上使用。

+0

沒有命令開關的基本命令中的克隆開始於非常高的版本號,對應於此導入發生並運行到最新版本時。我相對有信心,這不是一個硬件問題。 – tmesser