Ошибка в конфигурации Mercurial Extdiff?

Я использую Mercurial с расширениями Extdiff для сравнения файлов Simulink (.slx) с помощью инструмента сравнения Mathworks. Чтобы настроить расширение Extdiff, я следовал инструкциям на этом сайте. Сравнение файлов Simulink (.slx) работает очень хорошо.

Однако (и это совсем не здорово), поскольку я установил расширение extdiff, с помощью инструмента Mathworks можно сравнить не только файлы Simulink, но и классические файлы Matlab (.m).

Я не хочу этого, поскольку инструмент сравнения Mathworks немного ограничен, а файлы 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

Итак, вопрос:

Как мне изменить свою конфигурацию для сравнения файлов .slx с помощью инструмента сравнения Mathworks и файлов Matlab с помощью стандартного инструмента сравнения Mercurial?


person snowflake    schedule 01.07.2016    source источник
comment
На основании чтения mercurial-scm.org/wiki/ExtdiffExtension синтаксис в раздел [extdiff] начинается с cmd.slxdiff, а не только с slxdiff?   -  person StayOnTarget    schedule 25.10.2018


Ответы (1)


Наконец я нашел решение. Добавив шаблон сравнения для m-файлов, я мог заставить kdiff работать с m-файлами.

[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
person snowflake    schedule 15.11.2016