【问题标题】:In TFS, how do I do a baseless merge on specific changesets?在 TFS 中,如何对特定变更集进行无根据的合并?
【发布时间】: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 个?另外,我可以做些什么来限制合并到该变更集的内容?

【问题讨论】:

    标签: command-line tfs merge


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2020-05-20
      • 2011-12-21
      • 2011-04-30
      • 2014-06-25
      • 2017-05-31
      • 2012-05-08
      • 2011-03-07
      • 1970-01-01
      • 2011-04-23
      相关资源
      最近更新 更多