5

我想我什至不想看到它。为什么其他人认为它如此重要?

在此处输入图像描述

对于“解决冲突”又名合并工具窗口来说,Base, Target 不够。我错过了什么?人们真的对 Base ie Source 之前的版本感到困扰吗?

4

2 回答 2

10

您似乎对每个版本的含义有一个基本的误解。合并两个分支时,几乎总是希望保留两个分支的更改。 Base是两个分支的最新共同祖先。 Base->Source显示您要合并的分支中的更改,并Base->Target显示您要合并到的分支中的更改。要正确解决冲突,您需要知道每个分支中发生了什么变化。

于 2013-09-23T14:47:02.757 回答
5

( p4 docs - Merging Files中的一些 p4merge文档)

处理合并冲突时,它有四个部分:

  1. 两个分支都改变的共同祖先
  2. 他们的变化(来源)
  3. 您的更改(目标)
  4. 最终结果

p4 合并结果

(您可能有旧版本的 p4merge - 文档显示了不同的措辞,可能会消除混淆)

“源”不是之前的修订,而是其他人所做的合并中的传入更改。

忽略您的更改或其更改是一种可能的冲突解决方案 - 许多人将其作为默认的“合并,通过使用我的来处理冲突”。但是,这很可能会导致另一个分支引入的功能回归(或者更糟糕的是,删除另一个分支期望的代码)。

对于具有冲突的给定代码块,您的更改及其更改都很重要,并且两者的祖先为更改的内容提供了适当的上下文。

于 2013-09-23T15:17:03.787 回答