Как использовать WinMerge в качестве инструмента Diff для Mercurial
11813
quanticle
Я использую распределенную систему управления версиями Mercurial, и мне интересно, как я могу настроить ее для использования WinMerge вместо ее собственного внутреннего инструмента сравнения. У меня уже есть WinMerge в качестве инструмента слияния, но я хочу, чтобы Mercurial использовал WinMerge при вводе:
hg diff
Есть ли способ сделать это, или я застрял с внутренним инструментом сравнения Mercurial?
Добавьте эти строки в ваш личный файл Mercurial.ini
[расширения] extdiff = [Extdiff] cmd.winmerge = C: \ Program Files \ WinMerge \ WinMergeU.exe opts.winmerge = / e / x / u / wl
Теперь запустите инструмент глобальных настроек. На вкладке TortoiseHg вы должны увидеть winmerge, доступный в выпадающем списке для Visual Diff Command. Выберите winmerge, примените, затем закройте.
Этот же подход можно использовать для добавления практически любого визуального инструмента сравнения, но имейте в виду, что ваш инструмент сравнения должен иметь возможность поддерживать различия каталога, если он будет использоваться TortoiseHg, если вы не используете версию 0.8 или новее.
Джоэл также предоставил решение здесь в случае, если вы запускаете Mercurial под Cygwin.
/e позволяет закрыть WinMerge одним нажатием клавиши Esc
/x закрывает WinMerge (после отображения информационного диалога), когда вы начинаете сравнение идентичных файлов
/u запрещает WinMerge добавлять любой путь (левый или правый) в список «Последние использованные» (MRU)
/wl открывает левую сторону только для чтения
Я не использую TortoiseHG и не использую Mercurial под Cygwin. Я использую установщик Mercurial по умолчанию из http://mercurial.berkwood.com. Ваше решение сработало в том смысле, что я могу набрать 'hg winmerge'чтобы увидеть разницу между ним и предыдущей версией, но' hg diff 'все еще поднимает тот же (довольно уродливый) инструмент сравнения. Тем не менее, это лучше, чем ничего.
quanticle 15 лет назад
0
Я думаю, что этот ответ предполагает, что вы отредактируете Mercurial.ini в каталоге TortoiseHg (например, C: \ Program Files \ TortoiseHg). Если вы отредактируете файл в каталоге Mercurial (например, C: \ Program Files \ Mercurial), то это не сработает (по крайней мере, для меня это не сработало).
Ashley Davis 14 лет назад
0
также c: \ Program Files (x86) \ WinMerge \ WinMergeU.exe
Avram 11 лет назад
0
Убедитесь, что вы не ставите кавычки вокруг пути к WinMerge в файле конфигурации, иначе он не будет работать.
Drealmer 6 лет назад
0
7
renfeng
Вот как это работает для меня - чисто ртутная командная строка, кроме tortoisehg
Сначала отредактируйте файл (под 64-битными окнами)
C: \ Program Files (x86) \ Mercurial \ Mercurial.ini
[extensions] ; must uncomment this line extdiff = [extdiff] ; i'm using winmerge unicode version cmd.winmerge = C:\Program Files (x86)\WinMerge\WinMergeU.exe ; it explains winmerge command line parameters here: http://winmerge.org/docs/manual/CommandLine.html opts.winmerge = /r /e /x /u /wl
Затем вы можете использовать «hg winmerge ...» вместо «hg diff ...»
Я считаю полезным запускать winmerge в фоновом режиме, чтобы я мог просматривать изменения во время установки сообщения фиксации, а также отображать статистику изменений файлов в командной строке. Для этого поместите пакетный файл в каталог mercurial, который содержит start / b hg winmerge hg diff --stat
danio 14 лет назад
0
3
alehro
Ну, ответы, данные ранее, не дают мне желаемого эффекта. Они не позволяют вносить изменения в редакцию и редактировать на месте (я имею в виду ту же функциональность, которая доступна для TortoiseSVN из коробки). Для этого я добавил в mercurial.ini этот раздел: