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

使用TortoiseSVN,我需要在分支中完成所做的更改,然后将其与Trunk合并。

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

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

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

在TortoiseSVN中,我尝试了“重新合并分支”,“合并一系列修订”和“合并两棵不同的树”。 似乎没有什么实际上改变主干。 我也尝试在树干上分支。 这给我一个错误,说主干已经存在。

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

在你的情况下:

  1. 将工作副本切换到中继(SVN交换机)
  2. 将分支合并到工作副本(SVN合并)
  3. 确保一切仍然编译和工作
  4. 提交工作副本(干线)
  5. 考虑杀死分支

团队环境中,我build议你首先合并分支中的最新修改,确保所有内容都能编译和工作,然后执行上面的步骤(因为你已经testing了这些变化,这将是微不足道的)。


更新

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

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

无论如何,你总是可以访问每个修订版本,所以杀死一个分支只是为了防止其他开发者在一个死枝上发展。

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

来源: 合并

对于不在工作副本中但在标签/分支中的目录,您可能会遇到冲突错误。 只要接受冲突并重新合并。

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

在我的使用中,更常见的做法是在构build时保持主干运行并旋转分支。 那么我唯一需要做的合并就是从主干中获得一个错误修复,并把它放在最新的编译分支上,然后重新发布这个分支。 对我来说这是最简单的方法,因为你发现合并是最好的笨拙。 是保持最新的分支和主干检出到我的机器,并从字面上完全复制文件从主干分支,并同时检查。

我使用的是TortoiseSVN 1.9.3,Build 27038。

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

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

在这里输入图像说明

2)如果分支合并到树干select选项秒,如下所示,然后单击下一步

在这里输入图像说明

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

在这里输入图像说明

4)点击next,然后进行testing合并

在这里输入图像说明

5)如果testing合并成功,然后点击合并button。

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