Подключение программы kdiff3 (с целью сравнения файлов) (под Windows)
Для того, чтобы hg мог вызывать kdiff3, в папке, в которой находится hg.exe, создаем файл kdiff3.cmd и помещаем в него сценарий
@echo off setlocal :: Look in the registry for KDiff3 location for /f "skip=2 tokens=3*" %%A in ( '"reg query "HKEY_CURRENT_USER\SOFTWARE\KDiff3" /ve 2> nul"' ) do set KDiff3Path=%%B if "%KDiff3Path%"=="" (goto :notfound) else (goto :kdiff3) :kdiff3 rem "%KDiff3Path%\kdiff3.exe" --auto --L1 Base --L2 Local --L3 Other %2 %1 %3 -o %1 "%KDiff3Path%\kdiff3.exe" %1 %2 if not errorlevel 0 (exit /b 1) else (exit /b 0) :notfound echo hgmerge: cannot find KDiff3 location in the registry. exit /b 1
Дальше нужно решить, выполнять настройку для всех пользователей, или только для текущего пользователя. Если настраиваем для всех пользователей, нужно отредактировать файл Mercurial.ini в папке, в которую установлен Mercurial. Если хотим сделать настройку только для пользователя pupkin, редактируем файл
c:\Documents and Settings\pupkin\Mercurial.ini
При этом мы добавляем к hg новые команды через механизм расширений:
http://www.selenic.com/mercurial/wiki/index.cgi/UsingExtensions
Добавляем в файл Mercurial.ini следующее:
[extensions] hgext.extdiff = [extdiff] cmd.kdiff3 = kdiff3
Это означает, что мы, во-первых, подключаем к Mercurial расширение extdiff
http://www.selenic.com/mercurial/wiki/index.cgi/ExtdiffExtension
в результате чего hg начинает понимать новую команду extdiff. Можно посмотреть ее описание, выполнив
hg extdiff -h
Во-вторых, мы определяем для hg команду extdiff, которая эквивалентна
hg extdiff -p kdiff3
После этого мы можем сравнить рабочую копию с последней ревизией в репозитории командой
hg kdiff3
или сравнить ревизию 3 с ревизией 7 с помощью команды
hg kdiff3 -r 3 -r 7