将分支与主干合并

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

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

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

在前 svn 时代,我只需要复制分支文件夹中的文件,删除主干文件夹中的文件,然后将分支文件复制到主干文件夹中。

In TortoiseSVN, I've tried Reintegrate a branch, Merge a range of revisions, and Merge two different trees. Nothing seems to actually change trunk. I've also tried branching on top of the trunk. This gives me an error, saying that the trunk already exists.

67616 次浏览

首先将工作副本切换到主干。 Then do a merge range of revisions, from the branch to trunk. 一旦这个对话框完成,差异将在您的主干工作副本中挂起更改。您需要提交它们,就像您在工作副本上手动进行更改一样。

In my usage, its more typical to keep trunk running and spin branches off at the times of builds. So then the only merge I ever need to do is to get a bug fix out of trunk and put it on the latest build branch and re-release that branch. The easiest way for me to do this, since as you have found merging is clumsy at best. Is to keep the latest branch and the trunk checked out to my machine, and to quite literally copy the files from trunk to branch and check both in.

就你而言:

  1. 将工作副本切换到主干(SVN Switch)
  2. 将分支合并到工作副本中(SVN 合并)
  3. 确保所有内容仍然可以编译和工作
  4. 提交工作副本(主干)
  5. Consider killing the branch

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


更新

在第五步中,我提到了杀死树枝。这是因为一旦来自某个特性的分支出现在主干中,就应该将其视为主干的一部分。在这种情况下,树枝应该被杀死,这样就没有人继续在上面工作了。如果该特性需要进行重大修改,则应该为其创建一个新分支。

我唯一不关闭的分支是维护和发布分支,除非某个特定的发布不再受支持。

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

我认为在 TortoiseSVN1.8.5中,合并 | 合并两个不同的树应该可以工作。当您将一个分支/标记合并回主干时,诀窍在于 From URL 是主干,To 是标记/分支。奇怪但是真实。

资料来源: 融合

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

我使用 TortoiseSVN 1.9.3,Build 27038。

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

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

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

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