120

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

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

基本上,我希望我的树干看起来和树枝一模一样。

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

在 TortoiseSVN 中,我尝试过Reintegrate a branch,Merge a range of revisionsMerge two different trees. 似乎什么都没有真正改变主干。我也试过在树干上分支。这给了我一个错误,说主干已经存在。

4

4 回答 4

158

在你的情况下:

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

团队环境中,我建议您首先在分支中合并来自主干的最新修改,确保一切都编译并正常工作,然后执行上述步骤(这将是微不足道的,因为您已经测试了更改)。


更新

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

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

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

于 2009-01-08T15:20:31.143 回答
11

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

来源:合并

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

于 2014-05-20T18:16:58.257 回答
6

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

在我的使用中,更典型的做法是在构建时保持主干运行并分拆分支。因此,我需要做的唯一合并就是从主干中修复错误并将其放在最新的构建分支上并重新发布该分支。对我来说最简单的方法是,因为你发现合并充其量是笨拙的。是保持最新的分支和主干检出到我的机器,并将文件从主干复制到分支并签入。

于 2009-01-08T15:04:22.580 回答
4

我正在使用 TortoiseSVN 1.9.3,内部版本 27038。

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

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

4)单击下一步并进行测试合并

在此处输入图像描述

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

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

于 2017-11-13T12:26:54.937 回答