2009-01-08 61 views
117

使用TortoiseSVN,我需要对我在分支中完成的更改进行合并,然后将它们与Trunk合并。使用TortoiseSVN合并分支变化与中继

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

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

在预SVN的世界里,我只想将文件复制在我的分支文件夹,在树干文件夹中删除文件,然后复制到分支主干。

在TortoiseSVN的,我已经试过“复兴分支”,“合并范围的修改”和“合并两个不同的树。”似乎什么都没有改变主干。我也尝试在树干上分支。这给我一个错误,说主干已经存在。

在这一点上,我只是无知按钮糖化希望有所作为。

回答

155

你的情况:

  1. 切换工作副本行李箱(SVN开关)
  2. 合并分支合并到工作副本(SVN合并)
  3. 确保一切仍然编译和工程
  4. 提交工作副本(主干)
  5. 考虑杀分支

团队环境我建议你首先从你的分支主干合并最新的修改,确保一切编译和作品,然后执行上述步骤(这将是自琐碎你已经测试了这些变化)。


更新

在步骤5中,我提到杀死分支。这是因为一旦某个功能的分支位于主干中,应该将其视为主干的一部分。在这种情况下,分支应该被杀死,以至于没有人继续工作。如果需要对该功能进行重大修改,则应为此创建一个新分支。

,我不杀唯一的分支是维护和释放分行,除非特定版本不再支持。

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

+3

这是迄今为止最好的答案,但它可能更精确一些: 1.将工作副本切换到中继(SVN交换机),2.将分支合并到工作副本(SVN合并),3.编译工作复制,4.提交工作副本(SVN提交)。 ... – 2009-01-08 15:37:52

+0

谢谢,我做到了,它按照我的意愿工作。我也能够用这些相同的步骤标记代码。 在步骤5中,杀死分支的原因是什么?是为了节省空间吗? – 2009-01-08 17:33:19

+0

完成和完成,感谢您的反馈 – mbillard 2009-01-08 18:55:43

6

首先将您的工作副本切换到主干。 然后执行从分支到主干的修订版本的合并范围。 一旦这个对话框完成,这些差异将会在您的主干工作副本中发生变化。您需要提交它们,就像您在工作副本上手动进行更改一样。

在我的使用中,它更常用于在构建时保持主干运行并旋转分支。那么我唯一需要做的合并就是从主干中获得一个错误修复,并将其放到最新的生成分支上,然后重新发布该分支。对我来说这是最简单的方法,因为你发现合并最好是笨拙的。是保持最新的分支和主干签出给我的机器,并毫不夸张地将文件从树干复制到分支和检查都在

+2

要“复制”这些文件需要非常小心。使用类似TortoiseSVN的导出来避免破坏隐藏的svn目录。 – Milimetric 2011-12-08 15:24:49

10

我觉得在TortoiseSVN 1.8.5中,合并|合并两棵不同的树木应该可以工作。当你将一个分支/标签合并回主干时,诀窍是From URL是主干,To是标签/分支。奇怪但真实。

来源:Merging

对于目录,不是在你的工作拷贝,但在标签/支,你可能会发生冲突的错误。只要接受冲突并重新合并即可。

2

我使用TortoiseSVN 1.9.3,构建下面的步骤27038.

请按顺序合并支进树干。

1)右键单击主干工作副本并选择下面的选项。

enter image description here

2)在分支的情况下,合并到主干选择选项第二如下所示并点击下一步

enter image description here

3)在从:字段中输入的文件夹的完整URL树干。这听起来可能错了,但请记住,主干是您想要添加分支更改的起点。 在收件人:字段中输入功能分支的完整文件夹URL。

enter image description here

4)单击Next并做了测试合并

enter image description here

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

6)一旦合并成功,然后在中继上提交更改。