Visual studio 2015 如何将TFS变更集从分支A合并到分支C。分支A被合并到分支B,在那里';A和C之间没有合并关系

Visual studio 2015 如何将TFS变更集从分支A合并到分支C。分支A被合并到分支B,在那里';A和C之间没有合并关系,visual-studio-2015,tfs,merge,branch,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中,并且不会破坏任

假设有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中,并且不会破坏任何未来的合并


谢谢。

您所描述的被称为无基础合并。尽管您可以执行它们,但不建议这样做,这几乎总是表明您的分支策略有问题

您可以使用
tf
命令行工具执行无基础合并。我不相信这在VisualStudioIDE中是可能的,尽管我可能是错的,因为我已经有好几年没有执行无基础的合并了


我强烈建议您评估您的工作流程中发生了什么,使您处于需要执行无基础合并的情况。可能是您的分支策略不充分,也可能是您的工作流程更适合其他风险投资公司,如Git。

您所描述的是所谓的无基础合并。尽管您可以执行它们,但不建议这样做,这几乎总是表明您的分支策略有问题

您可以使用
tf
命令行工具执行无基础合并。我不相信这在VisualStudioIDE中是可能的,尽管我可能是错的,因为我已经有好几年没有执行无基础的合并了


我强烈建议您评估您的工作流程中发生了什么,使您处于需要执行无基础合并的情况。可能是您的分支策略不充分,也可能是您的工作流更适合其他风险投资公司,如Git。

不可能实现->B->C合并并保留所有历史记录。分支/移动将丢失文件夹历史记录,但单个文件历史记录实际上并未丢失。它隐藏在文件历史记录行最左边的“ExpandMe”小箭头下。在文件的最旧历史记录条目上或任何您看到它的地方展开它,您也将从不再存在的旧位置看到该单个文件的历史记录

但是,正如您所看到的,合并变更集的分支是基于文件夹历史的例如
分支B
的第一个变更集将是从
分支的变更集XXX

您将无法选择较旧的
BranchA变更集


解决方案

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

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

您需要在cmd中找到目标分支


tf merge/baseless/recursive

不可能实现A->B->C合并并保留所有历史记录。分支/移动将丢失文件夹历史记录,但单个文件历史记录实际上并未丢失。它隐藏在文件历史记录行最左边的“ExpandMe”小箭头下。在文件的最旧历史记录条目上或任何您看到它的地方展开它,您也将从不再存在的旧位置看到该单个文件的历史记录

但是,正如您所看到的,合并变更集的分支是基于文件夹历史的例如
分支B
的第一个变更集将是从
分支的变更集XXX

您将无法选择较旧的
BranchA变更集


解决方案

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

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

您需要在cmd中找到目标分支


tf merge/baseless/recursive

嗨,瓦迪姆,这方面有什么更新吗?我刚刚执行了baseless merge。并非所有行都正确合并而不显示冲突。这是很棘手的,尤其是如果你仍然可以构建代码,但是一些修复已经不存在了。希望我已经用意外的合并结果更新了文件。瓦迪姆,有什么更新吗?我只是执行了无根据的合并。并非所有行都正确合并而不显示冲突。这是很棘手的,尤其是如果你仍然可以构建代码,但是一些修复已经不存在了。希望我已经用意外的合并结果更新了文件