Возможно ли изменить инструмент сравнения по умолчанию в Mercurial?
-
04-07-2019 - |
Вопрос
Каждый раз, когда я делаю hg diff file.ext
, я использую консольное приложение diff. Я хотел бы использовать Kdiff3 или WinMerge (я использую Windows).
Есть ли способ изменить это? Я не могу найти ссылку в документации Mercurial ( Я не говорю о слиянии! ). Р>
Решение
Я решил эту проблему с помощью встроенного расширения Mercurial ... Мне просто нужно добавить следующие строки в Mercurial.ini (в папке Mercurial):
[extensions]
hgext.extdiff=
[extdiff]
cmd.vdiff = kdiff3
Когда я хочу использовать kdiff3 вместо diff, мне нужно только использовать:
hg vdiff file.ext
Другие советы
С этим конфигом
[extdiff]
cmd.kdiff3 =
Я использую эту команду для просмотра различий:
hg kdiff
Здесь показано дерево каталогов со всеми файлами, которые были изменены. Вы нажимаете на файл, чтобы увидеть различия только для файла. Вы можете добавить параметр file в команду, чтобы увидеть только один файл.
Подробнее здесь .
У меня только была эта проблема несколько минут назад; Я только что установил его и добавил его путь (по умолчанию это 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
Если вы ищете что-то вроде git difftool
, где вам не нужно вводить имена файлов и просматривать diff для всех измененных файлов, добавьте их в свой ~ / .hgrc
и запустите hg difftool
.
[extensions]
extdiff =
[extdiff]
cmd.vimdiff = vimdiff
[alias]
difftool = !for file in $(hg status -n); do hg vimdiff $file; done