我们公司最近将版本控制系统切换到SVN,使用TortoiseSVN作为我们的客户端,以促进敏捷开发方法的使用。我们的SVN存储库有来自主干的多个分支,每个sprint对应一个分支。我们通常采用“保持分支与主干保持最新,然后重新集成分支”的方法。但是,有时需要将分支中的更改移植到主干或其他分支!(例如错误修复)。我们有一个一直在开发中的bugfixes分支(如果可能的话,我想把它保留为一个分支,这样主干就可以保持“纯”)。
如果我定期合并分支到主干的一系列修订,然后在我们的错误修复集完成后重新集成分支到主干,这会起作用吗?我不想重复合并东西。不做重新整合合并,而只做一系列的修改,会不会更好?我们使用的是SVN 1.6。
发布于 2010-12-22 06:22:53
如果我定期合并从分支到主干的一系列修订,然后在完成一组错误修复后重新集成分支到主干,这会起作用吗?
是的,它会起作用的。
我不想双重合并。
由于您使用的是Subversion1.6,只要svn:mergeinfo property没有被篡改,Subversion就会跟踪哪些更改已经合并,并只合并那些尚未合并的更改。
如果永远不做重新合并,而只做一系列的修改,会不会更好?
你可以任选一种。但我建议使用重新整合合并,除非您将补丁或热修复程序移动到主干或其他分支中。
当从一个分支合并到另一个分支时,关于补丁或热修复的一个注意事项是:如果热修复或补丁有新的对象(文件和/或目录),请小心。有时,这些可能会导致树冲突,在一个分支被释放,移动到主干中,然后另一个分支从主干更新后,合并或重新整合可能是痛苦的。Subversion 1.6.x和相关客户端在合并过程中处理此问题,但较早的客户端不会。
发布于 2010-12-22 00:35:40
两个问题:
如果您对第一个问题的回答是肯定的,那么多个分支和从分支到主干的定期合并是有意义的。如果您定期或每次发布都标记发布,可能会使运行分支变得多余,并将主干作为“前沿”开发版本,包括错误修复。YMMV.
https://stackoverflow.com/questions/4501236
复制相似问题