Mercurial ExtDiff по одному - PullRequest
       35

Mercurial ExtDiff по одному

3 голосов
/ 06 сентября 2011

Я использую winmerge в качестве моего инструмента extdiff, например:

[extdiff]
cmd.winmerge = C:\Program Files\WinMerge\WinMergeU.exe
opts.winmerge = /e /x /ub /wl

Дело в том, что когда я запускаю hg winmerge, кажется, что он отправляет все файлы одновременно, например,Git, когда я делаю diff, он вызывает difftool с одним измененным файлом за раз.Могу ли я получить такое же поведение в Mercurial?

1 Ответ

5 голосов
/ 08 сентября 2011

Как объяснено в Mercurial: полное руководство , extdiff создает два снимка дерева исходных текстов и вызывает для них инструмент сравнения. Ваш инструмент должен поддерживать каталог diff, чтобы он работал, но, как объяснено, вы можете использовать сценарии, чтобы обойти это.

Этот пример сценария приведен в книге. В основном он берет две директории и вызывает утилиту interdiff для всех файлов.

В вашем случае вы можете легко адаптировать скрипт для вызова winmerge. Просто измените строку 41:

if os.system('winmerge /e /x /ub /wl "%s" "%s"' % (name(sys.argv[1], f),

Допустим, вы создали скрипт hg-winmerge, затем вы можете настроить extdiff следующим образом:

 [extdiff]
 cmd.winmerge = C:\Path\To\My\Script\hg-winmerge

Надеюсь, это поможет!

...