【问题标题】:How to Set TortoiseHG on Mac to diff with 2 parents?如何在 Mac 上设置 TortoiseHG 以区分 2 个父母?
【发布时间】:2016-12-26 00:42:41
【问题描述】:

这是我的设置文件:

[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 向差异。

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

【问题讨论】:

    标签: macos mercurial tortoisehg kdiff3


    【解决方案1】:

    一些readthedocs quotes

    在 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 实例的麻烦来源

    【讨论】:

    • 感谢您的详细回答,感谢您的努力。现在它在 [merge-tools]: kdiff3.diff3args=--L1 '$plabel1' --L2 '$clabel' --L3 '$plabel2' $parent1 $child $parent2 下仅添加这一行后完美运行
    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多