Git-svn克隆失败,perl.exe执行断言失败。

4

我的工作涉及一个非常庞大和古老的代码库,很快就变得难以合并多个项目。我正在尝试将整个历史记录的代码库拉入git,以解决其中的一些问题。

然而,在指定命令以确保拉取整个历史记录时,git svn会导致许多问题。

svn仓库和执行拉取操作的客户机都是基于Windows 7(svn仓库在Server 2008机器上,但本质上相同)。

这些是我迄今为止尝试过的命令:

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

问题:这可以检索到一个功能性的存储库,但只能获取与存储库相关联历史记录的大约四分之一,由于大约一年前发生了一些重大升级,没有人能给我太多详细信息。我不知道为什么会出现这种情况。其中一些作为存储库一部分的分支与主干线没有共同提交,这严重影响了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)

另外,我已尝试进行一些语义修复,如不使用/使用引号,使用 --branches 而非 -b,使用或不使用等号,在 URL 末尾使用或不使用斜杠等。 - tmesser
2个回答

0

-1

你有检查过是否内存不足吗?原始克隆非常占用内存。如果是这样,你可以在另一台机器上进行克隆,然后将其传输到开发机器上使用。


基本命令中的克隆不带任何命令开关,从此导入发生时的非常高的修订号开始运行到当前。我相对有信心这不是硬件相关问题。 - tmesser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接