我重构我和其他人的代码所有的时间.当我在分支而不是Trunk中工作时,这有时会导致一些非常痛苦的合并,特别是如果我不定期合并回Trunk(分支处的代码慢慢地从Trunc转移,当人们修改Trunk I时)必须手动弄清楚如何将其应用于分支机构).
我知道的解决方案也是
不断与Trunk合并 - 减少痛苦的合并,但那么为什么要在分支机构工作呢?
每当你需要重构一些东西时,切换到Trunk,在那里进行重构并合并到你的分支 - 我觉得这不是很实用,因为每次重构的切换环境的实际成本是巨大的.
你是做什么?
需要在开发时间表中的适当时间进行大规模重构.如果你在释放附近做了大量的重构,你最终会伤到自己,因为你会在最小化变化的时候引入痛苦的合并.您的重构将在开发周期的早期发生的破坏性越大(并且应该对其进行更特殊的处理,例如,在一段时间内尽可能多地停止对受影响文件的编辑).
不断地与主干进行合并通常是很好的做法.
在那种情况下,为什么要在分支机构工作?因为你有更多的控制权(你可以停止合并到trunk中以稳定它以便释放,例如,不必停止签入你的开发分支).因为您可以围绕合并到/从主干进行高级别的验证,而不会影响开发分支的签入速度.