Chr*_*way 5 svn git version-control merge branch
我的团队使用SVN进行源代码管理.最近,我一直在努力从树干偶尔合并一个分支,它一直是一个相当恼人的经验(参见乔尔斯波斯基的"颠覆故事#1"),所以我一直在寻找替代方法来管理分支与合并.鉴于集中式SVN存储库是不可协商的,我想要的是一组满足以下条件的工具.
完整的修订历史应存储在SVN中,用于中继和分支.
在任何一个方向(并且可能是纵横交错)的合并应该是相对无痛的.
合并历史记录应尽可能存储在SVN中.
我已经看过这两个git-svn并且bzr-svn似乎都没有达到工作 - 基本上,鉴于他们可以从SVN存储库导出的修订历史,他们似乎没有比SVN更好地处理合并工作.例如,用克隆库后git,我的分支修订历史记录显示原分公司关闭行李箱,但git没有"发现"任何临时SVN的合并为"原生"合并,修订历史是一个长行.因此,任何尝试从git收益中继合并收益与SVN合并一样多的冲突.(此外,git-svn文档明确警告不要使用git分支之间的合并.)
有没有办法调整我的工作流程以git满足上述要求?也许我只需要提示或技巧(或单独的合并工具?)来帮助SVN更好地融入分支机构?
在没有纯粹的 SVN 答案的情况下,我想参考 SO 问题“如何欺骗 git-svn 以识别使用 svn 进行的合并? ”
git-svn我建议在一个特殊的分支中进行这些 git 合并,但更简单的解决方案是使用gitrafts file在克隆的存储库中记录(至少是最近的)SVN 合并,以便进行转换:
o-...-A---o---D--- unstable
/
X-----B---M---o---o--- stable
Run Code Online (Sandbox Code Playgroud)
进入:
o-...-A---o---D--- unstable
/ \
X-----B---M---o---o--- stable
Run Code Online (Sandbox Code Playgroud)
,在 dcommit 之前简化 git 合并过程并将其发送回 SVN。