正如TFS中的大多数事情一样,你获得的收益超过你的预期。在这种情况下,我在合并期间看到的文件更改比我预期的要多。
我有2个子分支,让我们兴奋并称它们为branch1和branch2。自创建以来,它们都对它们进行了更改。我需要从branch2获取12个特定的更改集并将它们合并到branch1中。来自branch2的更改无法返回到父分支。所以这是一个毫无根据的合并的直接案例,但结果并不是我所期望的。
采用第一个变更集,我运行了以下命令:
tf merge /baseless /recursive /version:C95654 branch2 branch1
Changeset 95654包含12个已更改的文件,但在此命令之后,我得到56个已编辑的文件,存在冲突。我期望只将指定的变更集从一个分支合并到另一个分支,但它似乎已合并整个文件夹。
那么,当我指定变更集时,为什么我会更改56个文件而不是12个?另外,我该怎么做才能限制合并到只有变更集内容的内容?
答案 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