TFS无基础合并 - 已删除并重新创建的目标分支和无基础合并不再有效

时间:2016-07-18 15:43:58

标签: visual-studio tfs branching-and-merging

我的源代码控制上有以下分支,基于以下需求:
我们有多种环境,但在这种情况下,重要的是测试和生产。我们有多个并发项目需要由不同的团队开发,并在准备好后在单个测试环境中进行测试。当它们准备就绪时,可以将它们推向生产(如果需要在集成环境中进行额外的测试)。我们无法将功能组织到专用版本中 - 它们需要按照业务要求进行。

因此,我们在结构方面确定的是每个环境的分支加功能分支,我们接受了我们将在Test分支中执行无基础合并。没什么大不了的,因为我们可以通过UI将特定的变更集合并到Test。

$ / Benefits / Source / Main - 我们进行生产和/或集成部署的主干 $ / Benefits / Source / Test - 我们将功能合并到主要测试中的分支
$ / Benefits / Source / Dev / LURE-7 - 从行李箱分支 $ / Benefits / Source / Dev / [其他功能] - 从trunk分支

我有一个功能分支,已成功合并并测试。不幸的是,测试分支被一些合并严重搞砸了,我们决定简单地删除和重新创建测试分支将是最好的方法。我们删除了Test分支并从Trunk重新创建它。

我现在需要将我的功能分支重新合并到Test中,看起来我的功能分支保留了其无根合并的历史记录,并认为我的更改已经在目标分支中。我已经验证特定文件更改不在那里。

基本上发生了什么,当我在合并向导的第一页中选择“特定变更集”时,下一页不会显示比原始分支更新的任何变更集。

我的功能分支的历史记录,请参阅分支后的更改:
The history of my feature branch

合并向导的第1页:
Page 1 of the wizard

向导的第2页,它没有看到分支后的2个变更集:
Page 2 of the wizard

我的测试分支的历史记录,您可以看到它已被删除并重新创建:
The history of my Test branch, you can see it was deleted and recreated
(6/27我合并了我的功能分支,7/5我删除并重新创建了测试分支)

1 个答案:

答案 0 :(得分:2)

当您删除TFS中的分支时,它仍然存在,只是隐藏。如果您创建一个具有相同名称/位置的新分支,则TFS将取消删除旧分支。

最好的方法是

  1. 使用新名称/位置创建新分支。如果要保留旧已删除分支的历史记录,请执行此操作
  2. 从命令行使用tf destroy。如果历史不重要,请使用此选项。 小心使用此命令。一旦它消失,恢复它的唯一方法就是从你的TFS数据库备份。