使用Team Foundation Server中的Team Foundation版本控制将分支的最新版本合并到其根中

问题描述 投票:0回答:1

[我们在尝试使用Visual Studio 2017中的Team Foundation版本控制进行合并时遇到了问题,我们不知道这样做是否可行,甚至不明智。

我将解释问题的简化版本:

我们在源代码管理中有一个根分支,我们称它为Root,我们有一个Root分支,我将其称为Branch。

我们正在对分支提交更改,当我们确定要在根上进行更改时,我们将从分支合并到根(我们进行反向集成)。事实是,我们过去进行了一些合并,在其中我们只选择了分支中变更集的一个子集来将它们合并到Root中。

现在,在Branch中进行了一些其他更改之后,我们知道Branch的最新版本正在运行,并且我们希望将该版本合并到Root中。

问题是,当我们进行合并时,它将采用修改该文件的最后一个变更集上的文件版本,并且该变更集未合并到Root中。但是我们知道,Branch中该文件的最后一个版本是我们想要的版本,即使它没有出现是因为可以使该状态的更改集先前已经合并(实际上,大多数tieme,最后一个tiemes,该文件在“分支”和“根目录”中的版本相同,我们不希望对此进行更改。

示例:

我们将变更集1制作为Branch,然后将其合并到Root。

我们将Changeset 2变成Branch,修改File1(但是我们不将其合并到Root中。)>

我们将Changeset 3设置为Branch,再次修改File1,然后将其合并到Root中。现在Branch和Root具有相同版本的File。

我们将变更集4、5、6放入Branch,与File1不相关。

现在我们要做的是将分支中的任何文件的最新版本合并到Root中。

但是,如果我尝试将Branch合并到Root中,它将提示存在冲突,并且在冲突解决程序中将显示为:

以变更集2之后的文件1作为源(即上一个变更集未合并到根之后的文件版本,以及

与作为目标的根目录中的File1相同(并且恰好与我在上一个Branch版本中具有的File1版本完全相同,并且我想保持这种方式)。

顺便说一句,我们是否标记了“选择所有直到...的更改”为最新版本,变更集(使用最新版本),日期(现在),工作区等。或“选定的变更集”然后我们选择所有内容(当然,以前合并的内容不会出现在这里)。是否可以通过某种方式告诉Source Control,无论先前是否合并了变更集,我们都希望将Branch中每个文件的最新版本合并到Root中?这一切有意义吗?还是我错过了什么?

[我们在尝试使用Visual Studio 2017中的Team Foundation版本控制进行合并时遇到了问题,我们不知道这样做是否可行,甚至不明智。我要去...

visual-studio tfs version-control branching-and-merging
1个回答
0
投票

TFS合并引擎依赖于历史记录,而不是文件内容。您可以检查tf merge /candidate命令以列出源中尚未合并到目标中的变更集。并使用tf merge /version合并更改。检查以下链接:

© www.soinside.com 2019 - 2024. All rights reserved.