我的开发小组遵循Subversion中不稳定的主干,稳定的分支模式。每个月都会从主干创建一个稳定的发布分支。有时候,需要将这些更改分支中的更改合并到后续发布分支中,最后将其更改为主干。合并Subversion中的错过更改
问题是,在过去的几个月里,所有这些分支的合并都做得不正确。由于开发人员误解了他们需要合并的修订版本,因此许多修订都被忽略了。
一个例子不正确的合并历史是这样的:
------------------------------------------------------------------------
r57 | Bob | 2008-11-27 04:02:46 -0600 (Thu, 27 Nov 2008) | 1 line
action:merge; origin:branches/1; target:branches/2; range:28-55
------------------------------------------------------------------------
r28 | Alice | 2008-11-25 10:14:00 -0600 (Tue, 25 Nov 2008) | 1 line
action:merge; origin:branches/1; target:branches/2; range:10-25
这里,鲍勃应该从R25,爱丽丝的合并结束了,而不是R28,开始了自己的合并。
因此,现在我有6个分支机构自10月初以来就以这种方式被错误地合并了。这会导致测试失败以及主干中的许多回归。所以现在,我想回去并合并所有错过的更改。
有没有一个容易和正确方式做到这一点?我目前的计划是回到开始,并开始在每个差距合并。所以在这个例子中,我将合并版本25-28从分支1合并到分支2.但我期望有很多冲突,我希望有更好的方法。
真的没有快速简单的解决方法。迫使开发人员在Subversion中维护多个并发分支是很容易出错和耗时的。在这种情况下,无论如何,许多开发者的签入评论都是不准确的。所以真的没有办法回头追溯他们的步骤。相反,我们将全面测试最近的分支并关闭其余分支。
这真的听起来像一个可怕的政策和容易出错。我一直试图坚持“只在必要时,尽可能晚”的概念。我确定我错过了一些东西,而没有遇到需要按照你的方式去做,但对我来说,这听起来像是在招惹麻烦。 – Tim 2009-02-20 21:55:59