在TFS中,如何在特定变更集上进行无基础合并?

时间:2009-09-17 07:48:41

标签: command-line tfs merge

正如TFS中的大多数事情一样,你获得的收益超过你的预期。在这种情况下,我在合并期间看到的文件更改比我预期的要多。

我有2个子分支,让我们兴奋并称它们为branch1和branch2。自创建以来,它们都对它们进行了更改。我需要从branch2获取12个特定的更改集并将它们合并到branch1中。来自branch2的更改无法返回到父分支。所以这是一个毫无根据的合并的直接案例,但结果并不是我所期望的。

采用第一个变更集,我运行了以下命令:

tf merge /baseless /recursive /version:C95654 branch2 branch1

Changeset 95654包含12个已更改的文件,但在此命令之后,我得到56个已编辑的文件,存在冲突。我期望只将指定的变更集从一个分支合并到另一个分支,但它似乎已合并整个文件夹。

那么,当我指定变更集时,为什么我会更改56个文件而不是12个?另外,我该怎么做才能限制合并到只有变更集内容的内容?

2 个答案:

答案 0 :(得分:58)

如果需要合并特定的变更集,则需要使用以下语句:

tf merge /baseless /recursive /version:C95654~C95654 branch2 branch1

(仅表示变更集C95654)。

您使用的命令行表示C95654之前和之后的每个变更集。

答案 1 :(得分:1)

我必须为两个分支使用tfs路径。步骤是:将两个分支添加到所需的工作区;得到最新的;在目标文件夹中打开Windows PowerShell。获取tfs路径

>tf workspaces /format:detailed 
>tf workfold

然后使用$ paths作为分支。一个变更集的波浪形无基础合并之间的变更集编号相同。

>tf merge /baseless /recursive /version:C999~C999 "$/MyRepo/Current" "$/MyRepo/Development"

更多信息 - http://blogs.msdn.com/b/bharry/archive/2011/08/31/merge-enhancements-in-tfs-11.aspx