wiki:MercurialExtTortoiseMerge

Подключение программы 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
Last modified 13 years ago Last modified on Sep 17, 2007, 11:26:04 PM