我们运营基于干线的开发。我们最新和最好的代码不断集成到我们的主干中,直到我们准备好让它成为UAT。在那个阶段,我们从UAT的主干创建一个候选版本分支,并在主干中继续新的开发。一旦该候选版本通过UAT,它将被标记并发布到Live,并且从该标签创建的维护分支将一直存在,直到下一个主要(UAT)发布。
问题是,如何处理错误修复的合并。如果在UAT期间修复了维护分支上的错误,则应将此代码修补程序合并到主干和候选发布版中。如果在UAT期间修复了UAT错误,则应将此代码修复合并到主干。
我们都知道这一点,但有时合并会被遗漏,而且我们已经遇到过在Live中修复过的错误再次重新浮出水面的情况,因为修补程序未应用于所有必需的分支(主干和候选版本)
我们已经开始在我们的提交评论中引用其他分支的提交(基本上是我们自己的糟糕的合并信息),以便跟踪它。
然而有没有办法让我们绝对确保维护分支的所有提交都合并到trunk和release候选者,并且所有提交候选版本的提交都会合并到trunk? < / p>
答案 0 :(得分:0)
由于VCS无法发现错误修复和正在进行的开发之间的区别,简短的回答是没有办法100%确定,一个有开发人员检查清单的良好跟踪系统可能有所帮助但是甚至威胁要开枪或射击罪犯并不能确保不会发生。 实际上,这样做会减少重复违规者的行为!
答案 1 :(得分:0)
永久性工作
您可以使用(显然!!!)特殊的提交后挂钩
<强>先决条件强>
此外,非强制性(见下文)
商业逻辑(TBT !!!)
svnlook dirs-changed
执行此任务):需要合并到(已知)目标。此时,您可以拥有目标列表以供将来强制合并使用svn up
目标的WC(svn merge <options> --dry-run