我的团队使用SVN进行源代码控制。最近,我一直在一个分支上工作,不时地从主干合并,这是一个相当烦人的经历(参见Joel Spolsky的"Subversion Story #1"),因此我一直在寻找管理分支和合并的替代方法。鉴于集中式SVN存储库是不可协商的,我想要一组满足以下条件的工具。
完整的修订历史记录应存储在SVN中,包括主干和分支。
在任何方向上进行合并(甚至可能交叉合并)应该相对轻松。
尽可能将合并历史记录存储在SVN中。
git-svn
和bzr-svn
,但似乎都不能胜任这份工作——基本上,他们能从SVN仓库导出的版本历史记录中,不能比SVN更好地处理合并。例如,在使用git
克隆仓库后,我的分支的版本历史记录显示了原始分支与主干的关系,但git
无法将任何中间的SVN合并视为“原生”合并——版本历史记录是一条长线。因此,在git
中从主干合并会像在SVN中一样产生很多冲突。(此外,git-svn
文档明确警告不要使用git
在分支之间进行合并。)有没有办法调整我的工作流程以满足上述需求?也许我只需要一些提示或技巧(或单独的合并工具?)来帮助SVN更好地合并到分支中?