4

我的工作有一个绝对庞大而古老的代码库,很快就无法将多个项目合并在一起。我试图将存储库 - 连同它的整个历史 - 拉入 git 以解决其中一些问题。

但是,在尝试指定命令以确保提取整个历史记录时, 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)
4

2 回答 2

0

我认为这与git svn dcommit 由于断言错误“svn_fspath__is_canonical(child_fspath)”(cygwin)而失败的问题相同

不过,建议的解决方案可能并不那么令人满意(降级……)。

于 2013-12-04T11:20:00.643 回答
-1

您是否检查过内存是否不足?原始克隆确实是 RAM 密集型的。如果您是,您可以在另一台机器上进行克隆,然后将其转移到开发机器上使用。

于 2012-09-12T14:14:39.523 回答