Mercurial Extdiff配置中的错误?

时间:2016-07-01 22:29:30

标签: matlab mercurial simulink mercurial-extension

我使用Mercurial和Extdiff扩展来使用Mathworks的diff工具来区分Simulink(.slx)文件。要设置Extdiff扩展,我按照this website上的说明操作。差异Simulink(.slx)文件非常棒。

然而(这并不是很好)因为我设置了extdiff扩展,不仅Simulink文件使用Mathworks的工具,而且还有经典的Matlab文件(.m)。

我不希望这样,因为Mathworks的diff工具有点受限,而Matlab文件(它们是纯文本文件)可以使用Mercurial的标准差异工具轻松地进行区分。

下面你找到我的mercurial.ini。如您所见,它被配置为使用extdiff来表示.slx文件。但是.m文件没有设置设置。

# Generated by TortoiseHg settings dialog

[tortoisehg]
confirmaddfiles = True
confirmdeletefiles = True

[ui]
username = myname

[extensions]
largefiles = 
extdiff = 

[extdiff]
# Simulink
slxdiff = matlab -wait -nodesktop -r \"disp(\'Starting visdiff, please wait (even after the prompt appears).\');visdiff(\'$parent\',\'$child\')\"

[diff-patterns]
**.slx = slxdiff

所以,问题是:

如何使用Mathworks的diff工具和使用Mercurial标准差异工具的Matlab文件将配置更改为diff .slx文件?

1 个答案:

答案 0 :(得分:1)

最后我找到了解决方案。通过为m文件添加diff-pattern,我可以强制md文件使用kdiff。

[diff-patterns]
**.slx = slxdiff
**.m  = kdiff3

[extdiff]
# Simulink
slxdiff = matlab -wait -nodesktop -r \"disp(\'Starting visdiff, please wait  (even after the prompt appears).\');visdiff(\'$parent\',\'$child\')\"
kdiff3.args = $base $local $other -o $output