Mercurial&;TortoiseHg-args配置差异工具时出错?

Mercurial&;TortoiseHg-args配置差异工具时出错?,mercurial,config,tortoisehg,args,difftool,Mercurial,Config,Tortoisehg,Args,Difftool,我正在尝试在Ortoisehg和Mercurial中配置一个diff工具 这是我所做的配置: 但当工具启动时,它会查找“$local”和“$base”文件,而不是真实的文件名 我在Task Manager上发现,命令行正在获取参数的名称,而不是它们的值: 如何强制将参数的值传递给命令行?您遗漏了一些重要的点 你必须避免使用比较!作为合并工具(它仍然不支持三方合并):CmpIt.args现在是个大禁忌 您必须重新阅读hgrc.d\MergeTools.rc(任何合并工具部件)中的参数,这些参数在.

我正在尝试在Ortoisehg和Mercurial中配置一个diff工具

这是我所做的配置:

但当工具启动时,它会查找“$local”和“$base”文件,而不是真实的文件名

我在Task Manager上发现,命令行正在获取参数的名称,而不是它们的值:


如何强制将参数的值传递给命令行?

您遗漏了一些重要的点

  • 你必须避免使用比较!作为合并工具(它仍然不支持三方合并):
    CmpIt.args
    现在是个大禁忌
  • 您必须重新阅读
    hgrc.d\MergeTools.rc
    (任何合并工具部件)中的参数,这些参数在.diffargs中使用,由TortoiseHG/Mercurial帕雷德:
    $local
    +
    $base
    是用于合并的变量,而不是用于diff
  • 你必须重新阅读:他们根本没有提到
    -m
  • 在我的POV中,使用bcompare.diffargs选项作为快速启动和比较!帮助“翻译”,这将相当好的第一次迭代(未测试!!!)

    CmpIt.args=-m$local$base$other

    CmpIt.diffargs=$parent/=$plabel1$child/=$clabel

    [merge-tools]
    CmpIt.executable = E:\Program Files (x86)\Compare It!\wincmp3.exe
    CmpIt.priority = 1
    CmpIt.premerge = True
    CmpIt.gui = True
    
    CmpIt.args= -m $local $base $other
    CmpIt.diffargs= -m $local $base
    CmpIt.dirdiff= True
    
    E:\Program Files (x86)\Compare It!\wincmp3.exe -m $local $base