我们在 TFS 2012 上的分支机构遇到了棘手的情况,现在我们不确定我们的行动会产生什么结果。
有问题的分支结构如下:
/B----2-------
/
A -------1-----------
\
\C---3--
伪图大致是时间正确的 - 首先分支 B 从 A 分支,然后创建了后来的分支 C。数字是有问题的变更集(实际上我们的问题涉及每个分支上的多个变更集,但我已经简化了图表)。
我们想将变更集 3 从 C 合并到分支 B。Visual Studio 警告我们将执行无根据的合并(显然,因为分支 B 和 C 是兄弟而不是父子)。警告是这样的:
我们继续合并。然后在某个时候,一位开发人员发现我们忘记从分支 A 更新我们的分支 B,并且我们需要从分支 B 中的变更集 1 进行更改。但问题是变更集 1 有一些代码行,这些代码行后来在变更集中进行了修改我们合并的3个(分支C)。
现在的问题是,在我们完成变更集 3 从 C 到 B 的无基础合并之后,当我们将变更集 1 从 A 合并到 B 时,分支 B 会发生什么?
即使在我们进行了毫无根据的合并之后,当 TFS 发现变更集 1 的冲突代码行时,TFS 是否足够聪明以保留最新变更集 3 的更改?
PS我们会从这个错误中吸取教训,并会尽量避免将来毫无根据的合并......