由于Svndiff向后滑动源代码视图,git svn克隆失败

由于Svndiff向后滑动源代码视图,git svn克隆失败,git,svn,git-svn,Git,Svn,Git Svn,我正在使用git svn clone将svn存储库迁移到git,然后将克隆推到远程源以充当新的git存储库 使用这个过程,到目前为止我已经成功迁移了34个svn repo,但是在git svn克隆过程中,有4个由于以下错误而失败 命令: git svn clone --authors-file=authors.txt svn+ssh://git@server/path/to/SVN/project/trunk/repo_name repo_name.git 导致错误的原因: Svndiff d

我正在使用git svn clone将svn存储库迁移到git,然后将克隆推到远程源以充当新的git存储库

使用这个过程,到目前为止我已经成功迁移了34个svn repo,但是在git svn克隆过程中,有4个由于以下错误而失败

命令:

git svn clone --authors-file=authors.txt svn+ssh://git@server/path/to/SVN/project/trunk/repo_name repo_name.git
导致错误的原因:

Svndiff data contains backward-sliding source view: Svndiff has backwards-sliding source views at /usr/libexec/git-core/git-svn line 5061
以前是否有人遇到过此错误并找到了解决方法,或者强制git svn克隆忽略此错误并继续,或者先修复svn repo

我可能应该为这个问题增加一点背景知识。 我已经向各种工具指出了帮助svn到git迁移的方向,但不幸的是,大多数工具都是单向转换,不适合此任务

我有大约100个单独的代码库需要转换,每个代码库都是活跃开发中的实时系统,因此迁移将是分阶段的

  • 创建每个svn repo的实时git克隆->使用git svn rebase保持同步,然后推送到远程源主分支。git处于只读模式(针对开发人员)
  • 开始使用gitrepo进行代码审查,而不是svn
  • 为更改而不是svn启动git repo分支,将更改同步回svn。svn处于只读模式(针对开发人员)

  • SVN可能会用于部署/构建过程,因此我无法进行一次性转换,需要使用git SVN dcommit在所有阶段进行推送以保持同步。

    切换协议可能有助于解决此错误消息。我在通过https使用svn结账时也遇到了同样的问题。我将协议从https://切换到file://(同一台计算机中的服务器数据),这帮助我克服了这个问题。您可以查看支持线程的链接了解详细信息:了解其他步骤。
    这个变通方法帮助我将遗留回购迁移到git格式。我使用了subgit。

    作为临时解决方案,我可以指定一个版本来启动克隆。这让我可以继续这个过程,直到找到克隆整个修订历史记录的解决方案。虽然此链接可以回答这个问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-我最初怀疑这是否有帮助。从理论上讲,这应该没有什么区别,对吗?但是很明显,这个bug依赖于协议。这确实帮助我克服了这个错误。谢谢你的建议!(我后来确实遇到了类似的内部错误,但我能够通过使用
    svnadmin dump
    svnadmin load
    命令重建原始回购协议(非常旧)并再次尝试git-svn迁移来解决这个问题。