当使用Subversion时,开发人员是否应该在主干上工作,或者主干应仅用于来自每个开发人员分支的合并并由持续集成服务观看?
我们在交付新版本时的政策是在我们的VCS中创建一个分支并将其处理给我们的QA团队.当后者发出绿灯时,我们会标记并发布我们的产品.分支保持接收(仅)错误修复,以便我们可以创建技术版本.这些错误修复随后合并在主干上.
在此期间,主干会看到主要的开发工作,并且可能会受到重构更改.
问题是需要有一个稳定的主干之间存在紧张关系(以便错误修复的合并成功 - 如果代码已被提取到另一个方法,或者移动到另一个类,通常不能)在引入新功能时需要重构它.
我们的政策是在经过足够的时间之前不进行任何重构,并且分支足够稳定.在这种情况下,可以开始对主干进行重构更改,并在主干和分支上手动提交错误修复.
但这意味着开发人员必须等待一段时间才能在主干上进行任何重构更改,因为这可能会破坏从分支到主干的后续合并.并且必须手动将分支中的错误移植到主干上是很痛苦的.在我看来,这妨碍了发展......
你怎么处理这种紧张局势?
谢谢.