如何将 Mac 上的 TortoiseHG 设置为与 2 parents 不同?

How to Set TortoiseHG on Mac to diff with 2 parents?

这是我的设置文件:

[extensions]
hgext.extdiff =

[extdiff]
cmd.kdiff3 = /Applications/kdiff3.app/Contents/MacOS/kdiff3

[tortoisehg]
vdiff = kdiff3

[ui]
merge = kdiff3

[merge-tools]
kdiff3.executable = /Applications/kdiff3.app/Contents/MacOS/kdiff3
kdiff3.args = $base $local $other -o $output
kdiff3.priority = 1

在合并文件上,当我按 Cmd + D 时,即使 List Options 设置为 Changed by This Commit,它也只显示与本地 parent 的 2 路差异。在 Windows 中,当我按下 Ctrl + D 时,即使我没有更改任何设置,它也会显示 2 parent 的 3 向差异。

如何在 Mac 上设置 TortoiseHG 以在我按下 Cmd + D 时在合并文件上显示 3 向差异?我正在使用 TortoiseHG 3.9.0

一些readthedocs quotes

In TortoiseHg 1.0, the visual (external) diff infrastructure was refactored. The new system uses tool descriptions in mergetools.rc to detect most common diff tools on your computer (including KDiff3, which ships in our installer) and select the best available tool.

1.0 开始,老兄!!! ExtDiff 不是任何合并|差异工具所必需的(甚至是自定义的,而 kdiff3 是随 THG 一起提供的)

The visual diff system will use any existing extdiff configuration it finds. Since extdiff did not support three way diff arguments until very recently and still does not support label arguments, you will likely have a better experience by disabling or deleting any extdiff configuration you may have.

未被手动默认 KDiff3 配置(来自 Windows 中的 hgrc.d\MergeTools.rc)正确执行 所有任务

kdiff3.args=--auto --L1 base --L2 parent1 --L3 parent2 $base $local $other -o $output
kdiff3.regkey=Software\KDiff3
kdiff3.regkeyalt=Software\Wow6432Node\KDiff3
kdiff3.regappend=\kdiff3.exe
kdiff3.fixeol=False
kdiff3.premerge=False
kdiff3.gui=True
kdiff3.priority=-3
kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child
kdiff3.diff3args=--L1 '$plabel1' --L2 '$clabel' --L3 '$plabel2' $parent1 $child $parent2
kdiff3.dirdiff=True

(注意 diffargs + diff3args 选项)。来自以上来源

the extra keys used by TortoiseHg for visual diff:

diffargs:  the arguments to use for two-way file comparisons
diff3args: the arguments to use for three-way file comparisons

... If unconfigured, the default value of diffargs is ‘$parent $child’. The default value of diff3args is “”, indicating the visual diff tool cannot perform three way comparisons.

但是合并集必须进行三向比较,而您的错误配置是 MacOS 的 TortoiseHG 实例出现问题的根源