如何将新文件合并到TFS中的另一个分支?

时间:2011-10-19 04:22:54

标签: tfs

好的,在TFS中我们有一个主 trunk 分支和另一个分支,我们称之为 secondary 。我们在 trunk 中创建了一个新文件,但在尝试合并该特定文件时,它没有为我们提供合并到 secondary 分支的选项。我们假设这是因为辅助文件中不存在类似的文件。

这是问题的原因吗?如果是,我们如何才能将 trunk 中的新文件导入 secondary

这里,我们正在合并 secondary 中存在的文件。如您所见,下拉列表列出了我们所有的三个分支( secondary 实际上是中间分支): enter image description here

现在,当我尝试合并辅助分支后在 trunk 中创建的文件时, secondary 不再列为目标分支。 enter image description here

5 个答案:

答案 0 :(得分:10)

  

尝试合并该特定文件

要了解TFS,有助于记住变更单位是变更集,而且是签入和合并的变更集(不是文件)。

  

我们假设这是因为辅助

中不存在类似的文件

这是正确的 - 在目标分支所在的版本(变更集编号)处,此文件根本不存在,因此无需合并。

通常,您在合并源对话框中选择特定的文件并没有获得任何收益 - 正如它所说,它要求您选择源和目标分支。在根目录中指定分支,选择Selected changesets only,TFS将显示源中存在但尚未合并到目标的变更集列表。如果您只想要添加此新文件的文件,可以在该列表中选择它。

答案 1 :(得分:6)

我认为这应该可以通过VS GUI实现,如下所示:

选择添加新文件的文件夹,并订购(整个文件夹的)合并到 secondary < / em> branch。
现在所有已更改的文件夹文件都会显示在待处理列表+新文件中。
撤消所有其他文件&amp;继续只检查一个重要的文件。

有人可能会说,对TFS的这种限制实际上是有道理的:

  • 如果您对这些文件进行了其他更改,则可以防止您破坏辅助分支。
  • 如果您没有对任何其他文件进行其他更改,则合并您仍然有意义,因为合并将只包含您的新文件。

答案 2 :(得分:5)

“现在,当我尝试合并在辅助分支后在主干中创建的文件时,辅助不再列为目标分支。”

为此,右键单击Source Control Explorer中的文件,然后选择Branch而不是Merge。然后,将显示一个指定目标的对话框。

一般来说,最好合并主干和辅助而不是它的一部分(随着时间的推移更容易保持分支一致)。

答案 3 :(得分:1)

我认为原因只是你不能合并一些尚未分支的东西。请注意,如果合并包含新文件的文件夹,则表示操作为[merge,branch],表示您正在将新文件作为父文件夹合并的结果进行分支。据我所知,选择文件&gt;合并与分支&gt;分支,而不是合并似乎是解决方案。我看到的唯一区别是历史然后列出它有[分支]而不是[合并,分支]。在 secondary 分支中创建文件的分支后,可以将更改合并到分支之间的文件中。

答案 4 :(得分:-1)

您可以尝试使用TF Merge command