我需要将变更集合并到TFS中的另一个分支。但是不幸的是,由于此变更集中发生了不必要的代码签入,因此我无法将完整的变更集合并到新分支中。因此,我需要从变更集中跳过不需要的文件,并将其他文件合并到新分支。有可能这样做吗?附:由于变更集很大,因此我无法手动合并它。
sky43420024420 回答:如何仅合并TFS中变更集中的选定文件
您可以执行此操作,您将实现某种效果,例如部分合并。
仅将变更集中的某些更改合并到目标中时,会记录部分合并。在下面有两种常见的方案,您可以最终进行部分合并:
方案1:在检查合并文件时撤消一些未完成的更改
在这种情况下,即使我们已经将变更集 Dev 合并到 Main ,它仍然是合并候选对象。这是由于以下事实造成的:合并引擎检测到该变更集中仍然存在一些未从Dev传播到Main的变更。
方案2:不是在分支的顶部,而是在功能级别执行合并
例如:假设您有两个分支 Main 和 Dev ,每个分支都有两个文件夹(Feature1和Feature2),并且每个Feature文件夹包含一个文件。我们从功能文件夹(Dev\Feature1\feature1.txt
和Dev\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进行操作,撤消那些文件。
如果这些文件还包含其他一些需要更改,那么我建议您直接合并所有更改,并在合并操作之后创建一个新的更改集以排除那些不需要的代码。
这应该是最简单的解决方案。