这是我的设置文件:
[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
,它也只显示本地父级的双向差异。在Windows中,当我按下Ctrl + D
时,即使我没有更改设置上的任何内容,它也会显示3个不同的父母双向差异。
当我按Cmd + D
时,如何在Mac上设置TortoiseHG以在合并文件上显示3-way diff?我正在使用TortoiseHG 3.9.0
答案 0 :(得分:2)
在TortoiseHg 1.0中,视觉(外部)差异基础设施是 重构。新系统使用mergetools.rc中的工具描述 检测计算机上最常见的差异工具(包括KDiff3, 它在我们的安装程序中提供)并选择最佳可用工具。
由于 1.0 ,老兄! ExtDiff对于任何合并|差异工具都不是强制性的(即使是自定义的,而kdiff3也随THG一起提供)
视觉差异系统将使用任何现有的extdiff 配置 它找到了。由于 extdiff不支持三向差异参数 直到最近,仍然不支持标签参数,你 通过禁用或删除任何内容,可能会获得更好的体验 extdiff配置你可能有。
手动默认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
选项)。从以上来源
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实例的麻烦来源