如何仅合并TFS中变更集中的选定文件

我需要将变更集合并到TFS中的另一个分支。但是不幸的是,由于此变更集中发生了不必要的代码签入,因此我无法将完整的变更集合并到新分支中。因此,我需要从变更集中跳过不需要的文件,并将其他文件合并到新分支。有可能这样做吗?附:由于变更集很大,因此我无法手动合并它。

sky43420024420 回答:如何仅合并TFS中变更集中的选定文件

您可以执行此操作,您将实现某种效果,例如部分合并。

仅将变更集中的某些更改合并到目标中时,会记录部分合并。在下面有两种常见的方案,您可以最终进行部分合并:

方案1:在检查合并文件时撤消一些未完成的更改

在这种情况下,即使我们已经将变更集 Dev 合并到 Main ,它仍然是合并候选对象。这是由于以下事实造成的:合并引擎检测到该变更集中仍然存在一些未从Dev传播到Main的变更。

方案2:不是在分支的顶部,而是在功能级别执行合并

例如:假设您有两个分支 Main Dev ,每个分支都有两个文件夹(Feature1和Feature2),并且每个Feature文件夹包含一个文件。我们从功能文件夹(Dev\Feature1\feature1.txtDev\Feature2\feature2.txt)中编辑两个文件,然后签入更改。

如果在Feature1级别执行合并操作。( Changset142→ Changeset143 )您会注意到,在Pending Changes窗口中,只会合并在Feature1文件夹中所做的编辑。完成合并。

如果查看Feature1文件夹的合并历史记录,您将看到来自变更集142的所有更改都已合并到变更集143中。

但是,如果您查看Main的合并历史记录,您会发现只有变更集142的一部分已合并到变更集143中。这是正常的,因为变更集142进行了一些更改– Feature2中文件的编辑文件夹–未交付。


在进行部分合并的情况下,要找出已合并的更改以及遗漏更改集中的哪些更改。实现此目的的唯一方法是 diff (已部分合并的变更集的内容)和作为合并结果生成的变更集的内容。您可以参考此博客的更多详细信息:Partial Merges in TFS – A Guide

因此,如果您不需要的代码仅存在一个或几个文件,则可以按照方案1进行操作,撤消那些文件。

如果这些文件还包含其他一些需要更改,那么我建议您直接合并所有更改,并在合并操作之后创建一个新的更改集以排除那些不需要的代码。

这应该是最简单的解决方案。

本文链接:https://www.f2er.com/2590831.html

大家都在问