如何仅合并特定的变更集(TFS)

时间:2020-02-05 03:59:48

标签: c# tfs

我遇到一个问题,我想将一个特定的变更集从我的主分支合并到我的发行分支。

我正在使用Visual Studio 2015和团队服务(TFS)。

我执行了以下步骤:

  • 选择主分支
  • 选择选项合并
  • 选择正确的版本
  • 选择“选定的变更集选项”,然后按下一步
  • 选择我要与分支合并的变更集
  • 按完成开始

预期:仅应用所选变更集中的变更
实际::程序会合并到所选变更集。


这是一个特定的场景:

当主分支位于变更集19时,项目会分支

主分支现在还包含变更集20到25

我想将变更集24合并,但不将任何其他变更集合并到child / release分支中。

如果按照上述步骤操作,则合并工具还会将main中的20、21、22和23合并到子级中。

我的问题是,是否有一种简单的方法可以仅合并所选变更集(24),而不合并任何其他变更集?

我已经尝试了命令行,但是它给了我相同的结果。

3 个答案:

答案 0 :(得分:1)

合并时,选择“选定的变更集”选项,如下所示。在下一个屏幕上,您将能够选择一个变更集,或者按住Ctrl键并单击以选择多个变更集。

此屏幕截图来自VS2019,因为我手头没有VS2015,但是该选项将位于同一位置,即使它的名称可能略有不同。

TFS Source Control Merge Wizard

答案 1 :(得分:0)

您不能一次性合并多个变更集,除非变更集是按顺序排列的。看看下面类似的问题:

您必须一次性合并单个变更集或顺序变更集。

我已经尝试了命令行,但是它给了我相同的结果。

恐怕您可能使用了错误的格式。

以下示例将所有变更集合并到变更集24到branch2中。

c:\projects>tf merge /version:C24 branch1 branch2 /recursive

以下示例将变更集24 合并到branch2中。

c:\projects>tf merge /version:C24~C24 branch1 branch2 /recursive

在这种情况下,请在使用命令行合并时选择/version:C24~C24

答案 2 :(得分:0)

奇怪-第一次选择单个变更集对我不起作用-我将所有变更移至该变更集-但是序列是 从主变更到生产变更集 选择变更集7 选择变更集9 在变更集9的文件中,我将所有变更更改为9。

所以我全力以赴,做了 从主变更到生产变更集 选择变更集7 签入分支 选择变更集9

这次,我只获得了变更集9的文件变更-不是历史变更(即仅应用了差异) 一切都很好。

相关问题