Подключение программы TortoiseMerge (с целью сравнения файлов) (под Windows)
Для того, чтобы hg мог вызывать TortoiseMerge, в папке, в которой находится hg.exe, создаем файл tdiff.cmd и помещаем в него сценарий
@echo off setlocal :: Look in the registry for TortoiseMerge location for /f "skip=2 tokens=2*" %%A in ( '"reg query "HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseSVN" /v TMergePath 2> nul"' ) do set TMergePath=%%B if "%TMergePath%"=="" (goto :notfound) else (goto :tortoisemerge) :tortoisemerge "%TMergePath%" /base:%1 /mine:%2 if not errorlevel 0 (exit /b 1) else (exit /b 0) :notfound echo hgmerge: cannot find TortoiseMerge 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.tdiff = tdiff
Это означает, что мы, во-первых, подключаем к Mercurial расширение extdiff
http://www.selenic.com/mercurial/wiki/index.cgi/ExtdiffExtension
в результате чего hg начинает понимать новую команду extdiff. Можно посмотреть ее описание, выполнив
hg extdiff -h
Во-вторых, мы определяем для hg команду extdiff, которая эквивалентна
hg extdiff -p tdiff
После этого мы можем сравнить рабочую копию с последней ревизией в репозитории командой
hg tdiff
или сравнить ревизию 3 с ревизией 7 с помощью команды
hg tdiff -r 3 -r 7