【问题标题】:TFS - baseless merge and merging out of orderTFS - 无根据的合并和乱序合并
【发布时间】:2014-07-03 13:16:28
【问题描述】:

我们的分支机构在 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)。

现在的问题是,当我们将变更集 1 从 A 合并到 B 之后,分支 B 会发生什么我们已经完成了从 C 到 B 的变更集 3 的毫无根据的合并?

即使在我们进行了毫无根据的合并之后,当 TFS 发现变更集 1 的冲突代码行时,它是否会足够聪明地保留来自最新变更集 3 的更改?

附:我们将从这个错误中吸取教训,并在未来尽量避免毫无根据的合并......

【问题讨论】:

  • TFS 不会在您执行合并时自动提交合并 - 您总是有机会在签入之前查看更改。因此,最简单的方法是回答“当我尝试合并时会发生什么”对我来说,问题是实际执行合并,看看会发生什么。

标签: tfs branching-and-merging baseless-merge


【解决方案1】:

从您的图表看来,分支 C 中已包含 1。因此,当您从“C”合并到“B”时,更改将已包含变更集 1 的更改。

【讨论】:

  • 它没有发生,因为我在合并到 B 时只从 C 分支中选择了变更集 3。我不想将整个 C 合并到 B,而只想合并一些变更集。
  • 我明白了。当涉及到一些变更集时,它是否包含变更集 1 的变更取决于变更集 1 与您合并的变更集之间的重叠。为了回答您的问题,对于这些文件,将包含变更集 1 的更改。
猜你喜欢
  • 2011-03-07
  • 2019-03-23
  • 2016-01-29
  • 2012-10-16
  • 2015-06-03
  • 2016-10-14
  • 1970-01-01
相关资源
最近更新 更多