使用TortoiseSVN将分支更改与主干合并

时间:2009-01-08 14:56:17

标签: tortoisesvn merge branch trunk

使用TortoiseSVN,我需要在分支中进行更改,然后将它们与Trunk合并。

我是这个项目的唯一开发人员,所以我知道trunk没有改变。我正在学习SVN,以便最终我的团队可以使用它。

基本上,我希望我的后备箱看起来与分支完全一样。

在pre-svn世界中,我只是复制我的分支文件夹中的文件,删除trunk文件夹中的文件,然后将分支复制到trunk。

在TortoiseSVN中,我尝试过“重新整合分支”,“合并一系列修订”和“合并两棵不同的树”。似乎没有什么能改变干线。我也试过在行李箱顶部进行分支。这给了我一个错误,说干线已经存在。

在这一点上,我只是无知地按钮混合,希望有些东西可以运作。

4 个答案:

答案 0 :(得分:156)

在你的情况下:

  1. 将工作副本切换到中继(SVN交换机)
  2. 将分支合并到工作副本(SVN Merge)
  3. 确保所有内容仍然可以编译并正常工作
  4. 提交工作副本(主干)
  5. 考虑杀死分支
  6. 团队环境中,我建议您首先合并分支中的主干的最新修改,确保所有内容都编译并运行,然后执行上述步骤(这将是微不足道的你已经测试了这些变化。)


    <强>更新

    在第5步中,我提到杀死分支。这是因为一旦来自特征的分支在主干中,它应该被视为主干的一部分。在这种情况下,应该杀死分支,以便没有人继续工作。如果该功能需要进行重大修改,则应为此创建一个新分支。

    我不会杀死的唯一分支是维护和发布分支,除非不再支持特定版本。

    无论如何,您始终可以访问每个修订版,因此查杀分支仅用于阻止其他开发人员在死分支上进行开发。

答案 1 :(得分:10)

我认为在TortoiseSVN 1.8.5中,Merge |合并两个不同的树应该工作。将分支/标记合并回主干时,诀窍是From URL是主干,To是标记/分支。奇怪但真实。

来源:Merging

对于不在工作副本但位于标记/分支中的目录,可能会出现冲突错误。只需接受冲突并重做合并。

答案 2 :(得分:6)

首先将工作副本切换到主干。 然后进行从分支到主干的合并修订范围。 完成此对话框后,差异将在您的主干工作副本中等待更改。您需要提交它们就像在工作副本上手动进行更改一样。

在我的使用中,更典型的是在构建时保持中继线运行和旋转分支。因此,我需要做的唯一合并是从trunk中获取错误并将其放在最新的构建分支上并重新释放该分支。对我来说这是最简单的方法,因为你发现合并是最笨拙的。是将最新的分支和主干检查到我的机器上,然后将文件从主干复制到分支并检查两者。

答案 3 :(得分:3)

我正在使用TortoiseSVN 1.9.3,Build 27038。

按照以下步骤将分支合并到主干中。

1)右键单击主干工作副本,然后选择以下选项。

enter image description here

2)如果分支合并到主干选择选项第二,如下所示,然后单击下一步

enter image description here

3)在发件人:字段中输入主干的完整文件夹URL。这可能听起来不对,但请记住,主干是您要添加分支更改的起点。 在“收件人:”字段中,输入要素分支的完整文件夹URL。

enter image description here

4)单击“下一步”并执行测试合并

enter image description here

5)如果测试合并成功,则单击“合并”按钮。

6)合并成功后,在trunk上提交更改。