git-svn 克隆失败,perl.exe 断言失败

标签 git svn git-svn

我的工作有一个绝对庞大和古老的代码库,它很快变得无法将多个项目 merge 在一起。我正在尝试将存储库 - 及其整个历史 - pull 入 git 以解决其中的一些问题。

但是,当尝试指定命令以确保提取整个历史记录时,git svn 会导致许多问题。

svn 存储库和执行 pull 的客户端机器都是基于 Windows 7 的(svn 存储库位于 Server 2008 机器上,但实际上是相同的内核)。

这些是我到目前为止尝试过的命令:

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

问题:这检索了一个功能存储库,但只提取了与存储库相关的大约 1/4 的历史记录,这是由于大约一年前的一些重大升级,没有人能给我太多细节。我不知道为什么会发生这种中断。令人困惑的是,作为存储库一部分的一些分支与主干没有共同的提交。这非常严重地损害了 git 带来的 merge 优势。

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)

最佳答案

我认为这与 git svn dcommit fails because of assertion error "svn_fspath__is_canonical(child_fspath)" (cygwin) 是同一个问题

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

关于git-svn 克隆失败,perl.exe 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12305131/

相关文章:

linux - 如何在 git 中变得更有效率

git diff --word-diff 与单行文件

svn - 使TeamCity将Subversion内部版本号集成到程序集版本中

svn - 重命名目录,现在 SVN 不允许我提交

git - git如何决定在git-svn中使用哪个版本的svn?

git - 配置(或模拟)svn :externals to include code from Github in a svn-hosted project

git - 使用 git 扩展如何在不更改我的功能分支的情况下将我的功能分支 merge 到主分支中?

git - 在 Git 中,如何将错误修复提交应用到其他较新的分支?

svn - 执行 SVN checkin 命令时出错

git - 运行 git svn fetch --all 时,--all 选项有什么作用?