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

T N*_*yen 18 tfs

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

这是问题的原因吗?如果是,我们怎样才能将新文件从主干中获取辅助文件?

在这里,我们正在合并一个存在于辅助中的文件.如您所见,下拉列表列出了我们所有的三个分支(辅助分支实际上是中间分支): 在此输入图像描述

现在,当我尝试合并在辅助分支后在主干中创建的文件时,辅助不再列为目标分支. 在此输入图像描述

Aak*_*shM 10

尝试合并该特定文件

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

我们假设这是因为辅助文件中不存在类似的文件

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

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


pan*_*lif 6

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

选择添加新文件的文件夹,并订购(整个文件夹的)合并到辅助分支.
现在,该文件夹的所有已更改文件都会显示在待处理列表+新文件中.
撤消所有其他文件并继续仅检入重要的一个文件.

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

  • 如果您对文件进行了其他更改,则可以保护您免受破坏辅助分支的影响.
  • 如果您没有对任何其他文件进行其他更改,那么合并您仍然有意义,因为合并将只包含您的新文件.


Buc*_*ges 5

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

为此,请在源代码管理资源管理器中右键单击该文件,然后选择“分支”而不是“合并”。然后将弹出一个对话框来指定目标。

通常,最好不要合并主干和辅助主干,而要合并主干和辅助主干(更容易使分支随时间保持一致)。