鉴于有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中,而不会中断任何未来的合并。
感谢。
答案 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