在TFS中,如何对特定的变更集进行无根据的合并?

就像TFS中的大部分事情一样,你获得的东西比你讨价还价的多。 在这种情况下,我看到更多的文件更改合并期间比我期待。

我有两个孩子的分支,让我们激动,并称他们branch1和branch2。 自创build以来,两者都进行了更改。 我需要从branch2中取12个特定的变更集,并将它们合并到branch1中。 来自分支2的更改不能返回到父分支。 所以对于一个毫无根据的合并来说,这是一个简单的例子,但是结果并不是我所期望的。

采取第一个变更集我运行以下命令:

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

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

那么当我指定变更集时,为什么要更改56个文件而不是12个? 另外我能做些什么来限制什么是合并到变更集的内容?

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

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

(这意味着只能更改C95654)。

您正在使用的命令行是指在C95654之前和之后的每个变更集。

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

 >tf workspaces /format:detailed >tf workfold 

然后使用$path的分支机构。 对于一个变更集,在代字号之间进行无基本合并的变更集编号相同。

 >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