我们已经在工作中使用了几个月的工作流程,其中SVN开发人员创建了SVN修复分支,这些分支使用git合并到集成分支并通过dcommit提交回SVN(一次合并)。在这个工作流程中,有一个git-svn repo执行所有合并工作。
这个工作流程运行良好,git合并通常忠实地保存在原始的git-svn仓库中。
但是,现在我们决定将合并工作量分散到多个用户中,每个用户都有自己的git-svn repo。不幸的是,我们现在发现由一个git-svn用户执行的合并有时(但并不总是)看起来像是在另一个用户的git-svn repo中的单父提交,而不是看起来像两个父合并。
合并历史的丢失会对历史分析造成严重破坏并导致不必要的合并冲突,因为git无法再识别正确的合并库,如果合并父级已在所有存储库中保留,则可以执行此操作。
是否有人有任何有助于避免导致合并历史记录在一个或多个与常见SVN存储库同步的git-svn存储库中被破坏的情况?
答案 0 :(得分:0)
我不确定导致问题的原因,但我发现可接受的解决方法是根据此处描述的技术使用移植重新创建git中的合并:
Fixing SVN Merge History in Git Repositories
尽管我还没有对过滤器分支感到困扰,因为我并不完全相信它与svn rev map一致,git-svn用它来跟踪SVN和git提交之间的映射。