合并修订范围和仅修订头之间有什么区别?

时间:2014-03-01 04:03:25

标签: svn tortoisesvn

我有两个分支。一个是为月发布创建的,另一个是为8月发布创建的。

8月分支需要更新5月更改,直到5月分支被锁定以进行更改。

我在乌龟中使用'Merge range of revision'选项。在修订范围内,我是否只需要提供“HEAD”,因为我将合并最新的5月到8月。

我是否需要指定我之前改装号码的范围?例如,我将5月到8月的8123版改装。现在我需要指定8123-Head或者只需要HEAD。

有什么区别。?

2 个答案:

答案 0 :(得分:2)

如果仅选择HEAD,则HEAD之前的任何修订中的任何更改都不会包含在合并中。您需要选择分支中尚未包含更改的分支中的所有修订,或者将范围说明符留空以允许SVN确定要合并的修订。

编辑添加示例

当您执行“修订范围”合并时,您将选择单个更改以挑选合并目标。如果你说“merge HEAD”你并不是说“通过HEAD合并所有更改”,你就是说“仅合并在该分支上最后一次修订中发生的特定更改”。考虑一个修订版122的主干; MayBranch,修订版123,124和125;还有一个版本为126和127的AugustBranch。这两个分支都是从主干版本122复制的。

您希望将MayBranch-123,124和125上的所有三个更改合并到AugustBranch中。如果选择所有三个修订版,或将修订说明符留空,则会发生这种情况。合并将使用trunk上的修订版122作为BASE,MayBranch上的125作为源修订版,而AugustBranch上的127作为目标修订版。

如果您选择HEAD作为要合并的修订,SVN将使用MayBranch上的修订版124作为BASE,其中125作为源修订,127作为目标。由于BASE现在是开始修改125的更改的地方,因此您只能获得修订版125中特别发生的更改。

最终结果就好像你只在MayBranch上导出了版本125作为差异,然后将该差异应用于AugustBranch。除非包含合并跟踪信息,否则SVN知道如何随后自动获取整个分支。

答案 1 :(得分:1)

如果要合并自上次合并以来的所有更改,请将“要合并的修订范围”清空:

enter image description here