Возможно ли изменить инструмент сравнения по умолчанию в Mercurial? - PullRequest
62 голосов
/ 26 октября 2008

Каждый раз, когда я делаю hg diff file.ext, я использую консольное приложение diff. Я хотел бы использовать Kdiff3 или WinMerge (я использую Windows).

Есть ли способ изменить это? Я не могу найти ссылку в документации Mercurial ( Я не говорю о слиянии! ).

Ответы [ 4 ]

68 голосов
/ 27 октября 2008

Я решил это, используя встроенное расширение Mercurial ... Мне просто нужно добавить следующие строки в Mercurial.ini (в папке Mercurial):

[extensions]
hgext.extdiff=

[extdiff]
cmd.vdiff = kdiff3

Когда я хочу использовать kdiff3 вместо diff, я должен использовать только:

hg vdiff file.ext
8 голосов
/ 18 сентября 2009

С этим конфигом

[extdiff]
cmd.kdiff3 =

Я использую эту команду для просмотра различий:

hg kdiff

Показывает дерево каталогов со всеми файлами, которые были изменены. Вы нажимаете на файл, чтобы увидеть различия только для файла. Вы можете добавить в команду параметр файла, чтобы увидеть только один файл.

Подробнее здесь .

3 голосов
/ 07 сентября 2016

Если вы ищете что-то вроде git difftool, где вам не нужно вводить имена файлов и просматривать различия для всех измененных файлов, добавьте их в ~/.hgrc и выполните hg difftool.

[extensions]
extdiff =

[extdiff]
cmd.vimdiff = vimdiff

[alias]
difftool = !for file in $(hg status -n); do hg vimdiff $file; done
3 голосов
/ 23 декабря 2010

У меня просто была эта проблема несколько минут назад; Я просто установил его и добавил его путь (по умолчанию это c: \ program files \ kdiff3) к моей системной переменной PATH e.v. Перезапустил мое окно, чтобы подобрать новый путь, и «hg kdiff3» просто сработал. Как оказалось, в моем базовом файле "mercurial.ini" приведено следующее, это позволяет kdiff3 работать для всех репозиториев hg в системе.

[extensions]  
hgext.extdiff =  

[extdiff]  
cmd.kdiff3 =

[merge-tools]  
kdiff3.args = $base $local $other -o $output
...