在 TFS 中,如何对特定变更集进行无根据的合并?
Posted
技术标签:
【中文标题】在 TFS 中,如何对特定变更集进行无根据的合并?【英文标题】:In TFS, how do I do a baseless merge on specific changesets? 【发布时间】:2010-11-29 01:37:38 【问题描述】:与TFS 中的大多数事情一样,您得到的比您讨价还价的要多。在这种情况下,我在合并期间看到的文件更改比我预期的要多。
我有 2 个子分支,让我们激动一下,称它们为 branch1 和 branch2。自创建以来,两者都对其进行了更改。我需要从 branch2 中获取 12 个特定的变更集并将它们合并到 branch1 中。来自 branch2 的更改无法返回到父分支。所以这是一个毫无根据的合并的简单案例,但结果不是我所期望的。
采用第一个变更集,我运行了以下命令:
tf merge /baseless /recursive /version:C95654 branch2 branch1
变更集 95654 包含 12 个已更改的文件,但在此命令之后,我得到 56 个已编辑的冲突文件。我原本希望只将指定的变更集从一个分支合并到另一个分支,但它似乎已经合并了整个文件夹。
那么,为什么我在指定变更集时会更改 56 个文件而不是 12 个?另外,我可以做些什么来限制合并到该变更集的内容?
【问题讨论】:
【参考方案1】:如果您需要合并特定的变更集,您需要使用以下语句:
tf merge /baseless /recursive /version:C95654~C95654 branch2 branch1
(这意味着只有变更集 C95654)。
您使用的命令行表示 C95654 之前和之后的每个变更集。
【讨论】:
是否有可能我进行了毫无根据的合并,但我没有得到 branch1(目标)代码?,【参考方案2】:我不得不为两个分支使用 tfs 路径。步骤是:将两个分支添加到所需的工作区;获取最新信息;在目标文件夹中打开一个 Windows powershell。获取 tfs 路径
>tf workspaces /format:detailed
>tf workfold
然后使用 $paths 作为分支。一个变更集的 tilde ment baseless 合并之间的变更集编号相同。
>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
【讨论】:
以上是关于在 TFS 中,如何对特定变更集进行无根据的合并?的主要内容,如果未能解决你的问题,请参考以下文章