2

这是我的设置文件:

[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,它只显示与本地父级的 2 路差异,即使List Options设置为Changed by This Commit. 在 Windows 中,当我按下 时Ctrl + D,即使我没有更改设置上的任何内容,它也会显示与 2 个父母的 3 向差异。

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

4

1 回答 1

2

一些阅读文档引用

在 TortoiseHg 1.0 中,重构了可视(外部)差异基础结构。新系统使用 mergetools.rc 中的工具描述来检测您计算机上最常见的差异工具(包括我们的安装程序中附带的 KDiff3)并选择最佳可用工具。

1.0开始,老兄!!!ExtDiff 对于任何合并|差异工具都不是强制性的(即使是自定义的,而 kdiff3 是随 THG 一起提供的)

视觉差异系统将使用它找到的任何现有的 extdiff配置。由于extdiff 直到最近才支持三向差异参数并且仍然不支持标签参数,因此通过禁用或删除您可能拥有的任何 extdiff 配置,您可能会获得更好的体验。

未手动破坏默认 KDiff3 配置(来自hgrc.d\MergeTools.rcWindows)正确执行所有任务

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选项)。从以上来源

TortoiseHg 用于视觉差异的额外键:

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

... 如果未配置,则默认值为diffargs'$parent $child'。默认值为diff3args“”,表示视觉差异工具无法进行三路比较

但是三向比较对于合并集来说是必须的,而你的错误配置是 MacOS 的 TortoiseHG 实例的麻烦之源

于 2016-08-20T00:48:43.817 回答