如何将TFS变更集从分支A合并到分支C.分支A合并到分支B,并且A和C之间没有合并关系

时间:2018-05-15 02:22:19

标签: visual-studio-2015 tfs merge branch

鉴于有3个TFS分支--A,B和C. 您可以将变更集从A合并到B,从B合并到C.但是不能将变更从A合并到C. A - > B - > C。 在分支A中有一些我的变更集我需要合并到分支C. 所有变更集(来自所有用户)已经从A合并到B.

当我尝试从B合并到C时,它没有提供A的变更集列表(只有一个大的变更集在一段时间内有所有变更。) 当我尝试将我的特定变更集从A合并到B时,我无法看到它们,因为它们已经是分支B的一部分。

是否有一种智能方法可以将我选择的更改从A或B合并到C中,而不会中断任何未来的合并。

感谢。

2 个答案:

答案 0 :(得分:1)

您所描述的内容称为无基础合并。虽然您可以执行它们,但不建议这样做,并且几乎总是表明您的分支策略存在问题。

您可以使用tf命令行工具执行baseless合并。我不相信它在Visual Studio IDE中是可能的,尽管我可能错了,因为我已经多年没有进行无基础的合并了。

我强烈建议您评估工作流程中发生的情况,这些情况会导致您需要执行无基础合并。可能是您的分支策略不合适,或者您的工作流程可能更适合其他VCS,例如Git。

答案 1 :(得分:1)

无法实现A - > B - > C合并并保留所有历史记录。分支/移动将丢失文件夹历史记录,但单个文件历史记录实际上并未丢失。它隐藏在小小的#34;扩展我"文件历史记录行最左侧的箭头。在文件的最旧历史记录条目或您看到的任何位置展开它,您还将从不再存在的旧位置查看该单个文件的历史记录。

但是,正如您所看到的,根据文件夹历史记录合并变更集的分支例如Branch B的第一个变更集将变为从{{1}分支的变更集XXX }。

您将无法选择BranchA

的旧变更集

解决方案

实现您的需求的方法是将BranchA与旧的变更集直接合并到BranchA即使您将收到如下警告提示:

  

源和目标之间不存在合并关系。   将执行无基础合并

您需要在{cmd}中do a baseless merge目标分支。

Branch C