我们已经在工作中使用了几个月的工作流程,SVN开发人员创建SVN修复分支,这些分支使用git合并到集成分支中,然后提交回SVN,一次合并,使用dcommit。在这个工作流程中,只有一个git-svn代码库完成了所有的合并工作。
这个工作流程运行得很好,git合并通常会被忠实地保存在原始的git-svn repo中。
但是,现在我们决定将合并工作负载分散到多个用户,每个用户都有自己的git-svn代码库。不幸的是,我们现在发现,一个git-svn用户执行的合并有时(但并不总是)看起来像另一个用户的git-svn存储库中的单个父提交,而不是看起来像两个父合并。
合并历史的丢失会对历史分析造成严重破坏,并导致不必要的合并冲突,因为git不再能识别正确的合并基础,如果合并父项在所有存储库中都得到了保留,git就可以做到这一点。
有没有人有任何实践可以帮助避免在一个或多个与公共SVN存储库同步的git-svn存储库中导致合并历史被破坏的情况?
发布于 2013-06-01 11:17:01
我不确定是什么导致了这个问题,但我发现一个可以接受的解决方法是按照这里描述的技术使用移植在git中重新创建合并:
Fixing SVN Merge History in Git Repositories
尽管我还没有费心使用filter分支,因为我并不完全相信它与svn rev map配合得很好,git-svn使用它来跟踪SVN和git提交之间的映射。
https://stackoverflow.com/questions/16463211
复制相似问题