2012-09-06 89 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