【发布时间】:2014-07-23 07:30:01
【问题描述】:
我正在将 svn 存储库迁移到 git,使用 git svn clone,然后将克隆推送到远程源以充当新的 git 存储库。
到目前为止,我已经成功迁移了 34 个 svn repos,但是在 git svn clone 过程中,有 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 clone 忽略错误并继续,要么先修复 SVN repo?
我可能应该为这个问题添加更多背景知识。 我被指出了各种工具的方向来协助 svn 到 git 的迁移,但不幸的是,其中大多数是单向转换,不适合这项任务。
我有大约 100 个单独的代码库要转换,每个代码库都是活跃开发中的实时系统,因此迁移将是一个分阶段的方法。
- 创建每个 svn repo 的实时 git 克隆 -> 使用 git svn rebase 保持同步,然后推送到远程源主分支。 git 处于只读模式(适用于开发人员)。
- 开始使用 git repo 进行代码审查,而不是 svn
- 开始分支 git repo 以进行更改而不是 svn,将更改同步回 svn。 svn 处于只读模式(适用于开发人员)。
SVN 可能会用于部署/构建过程,因此我无法进行一次性转换,需要使用 git svn dcommit 来保持同步以在所有阶段回推。
【问题讨论】:
-
作为临时工作,我能够指定一个修订版来启动克隆。这让我可以继续这个过程,直到找到克隆整个修订历史的解决方案。