我有一个项目需要将Git存储库移植到SVN。 我尝试了几种在线发布的方式,但它们都不适合我。 如果有人能提供帮助,我们将非常感激。
我遵循了
指南git svn rebase
和git svn dcommit
这种方法的问题在于我的Git存储库具有复杂的历史记录。 有许多分支出局和合并。 当我选择樱桃时,它只会回收最终存储库的一部分。
问题:有没有办法避免采摘樱桃和git svn rebase
?
也许用其他东西替换它?
我关注此帖子:Migrate a Git repo to an svn one
这篇帖子基本上是
git svn clone
git svn rebase
)git dcommit
这种方法的问题类似于我在第一篇中所遇到的问题:
当我做git svn rebase
时,会有很多冲突。
此外,当我跳过所有冲突时,git dcommit
失败。
它告诉我:Unable to determine upstream svn information from HEAD history.
我不知道从这一点开始还有什么可尝试的。 如果您发现我做错了或有其他办法,请提出任何建议。 赞赏它!!
答案 0 :(得分:4)
我想你别无选择,只能失去一些git历史--SVN无法处理那么多信息。
我想到的唯一一个将问题委托给第三方的黑客就是利用GitHub's SVN support来缓解你的任务。
我建议您真正考虑是否需要保留历史记录,或者需要完整的历史记录。基于此,我只是压缩/重新定义冲突的提交(或单个提交中的整个历史记录)并从中开始。
愿叉子和你在一起!
答案 1 :(得分:1)
嗯,你必须看看this question。最佳答案是:
转换这个方向的一般问题是,Git存储库可以包含的不仅仅是修订版的线性历史记录,正如Subversion所期望的那样。具有不同历史和频繁合并提交的多个祖先都是可能的,这些都无法在Subversion存储库中轻松表示。
对于在Git存储库中确实存在线性历史记录的简单情况,您可以使用git-svn dcommit将批次推送到另外空的Subversion存储库。
最好的问候。