【问题标题】:What compare options does TFS use when merging?合并时 TFS 使用哪些比较选项?
【发布时间】:2016-01-07 16:25:58
【问题描述】:

我们最近遇到了一些合并问题,其中单个文件出现了一堆冲突,并且被严重搞砸了。我们的解决方案是只获取源副本(我们是反向集成),因为没有办法调和所有差异。然后,在签入时,该文件未签入,因为源版本已与目标分支中的最新版本匹配。

我最初的想法是,由于进行合并的人没有先获取最新版本,因此它是在比较 Workspace 版本而不是最新版本。有这种可能吗?如果是这样,有没有办法强制 TFS 在进行合并时始终比较最新版本?

【问题讨论】:

  • 如果源分支匹配目标分支,为什么需要执行合并操作?你什么时候遇到冲突的?
  • @Patrick 分支不匹配,分支中的单个文件匹配,因为我们之前已经合并了更改。我们正在执行反向集成,以确保我们在其他分支中的所有更改都存在于 Main 中。

标签: tfs merge visual-studio-2015


【解决方案1】:

没有办法强制 TFS 在进行合并时总是比较最新版本。由于 TFS 将分支与您选择的版本合并。 但是有解决方法可以解决它。 例如:

您将分支(变更集 98)带到本地工作区以进行相同的更改。但是 TFS 服务器中的最新版本是变更集 100。完成工作后,签入分支(获取变更集 101),您可以将分支(最新版本变更集 101)合并到您的目标分支。

现在目标分支包括您在变更集 98 中的更改,但不包括变更集 100 和变更集 98 之间的差异。您需要再次合并分支(选择更改 100)到目标分支。可能存在一些冲突,您只能手动解决。

最后,您已经合并了最新的分支,包括对目标分支的所有更改。

【讨论】:

  • 并不是说没有任何要合并的更改,只是两个分支中存在的这个单个文件在合并操作期间出现了大量冲突。然后,当我们决定使用源文件来解决冲突时,没有签入那个文件,因为它们实际上完全相同。
  • 很抱歉由于您的问题的第一段而造成误解。我已按上述方式更新了我的回复。希望对您有所帮助
【解决方案2】:

要合并最新版本,您需要选择最新版本作为版本类型。

【讨论】:

  • 是的,但与什么相比呢?如果您在这里选择最新版本,是使用源分支的最新版本,并将其与目标分支的工作区版本进行比较,还是也使用目标分支的最新版本?
  • 它与目标分支的本地工作区版本进行比较。并且会提示你一个警告说有一些冲突,你可以使用合并工具解决冲突。
  • 谢谢,这是我们的问题。进行合并的人没有先做最新的事情,冲突就是由此造成的。
猜你喜欢
  • 2021-11-15
  • 2011-03-21
  • 2020-06-16
  • 1970-01-01
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
  • 1970-01-01
相关资源
最近更新 更多