Я много искал, обнаружил, что некоторые люди утверждают, что они это сделали, но я не могу заставить его работать.
Как использовать WinMerge, мой любимый инструмент сравнения в Windows, с Bazaar?
Я знаю, что плагин difftools (поставляется с Bazaar) обрабатывает это, но в файле controller.py его нет, и я не вижу, где указать путь. Похоже, что он ищет в переменной PATH и сообщает bzr: ERROR: Невозможно найти 'winmerge' в (длинный список путей).
Я попытался поместить файл .cmd, а затем ярлык WinMergeU.exe в каталог Bazaar, переименовав соответственно (winmerge.cmd, winmerge.lnk) в параметр register_diff_tool
. Больше ошибок нет, но ничего не запускается ...
Итак, кто-нибудь добился успеха, используя WinMerge (или, возможно, какой-то другой инструмент Windows) с Bazaar?
Мне было бы интересно использовать его с плагином extmerge ...
РЕДАКТИРОВАТЬ После первых двух ответов я попробовал несколько вариантов, которые я перечислю здесь для справки. Никто не работал:
# As suggested:
# Bad: bzr: ERROR: [Errno 22] Invalid argument: 'c:\\docume~1\\philho\\locals~1\\temp\\bzr_C:/Program Files/_Text/WinMerge/WinMergeU.exeh7angm.log'
wdiff = diff --using "C:/Program Files/_Text/WinMerge/WinMergeU.exe"
# Bad: bzr: ERROR: Cannot find 'C:Progra~1_TextWinMergeWinMergeU.exe' in <PATH>
wdiff = diff --using C:\Progra~1\_Text\WinMerge\WinMergeU.exe
# Variants:
# Bad: bzr: ERROR: [Errno 22] Invalid argument: 'c:\\docume~1\\philho\\locals~1\\temp\\bzr_C:/Progra~1/_Text/WinMerge/WinMergeU.exejuttft.log'
wdiff = diff --using C:/Progra~1/_Text/WinMerge/WinMergeU.exe
# Bad: bzr: ERROR: [Errno 22] Invalid argument: 'c:\\docume~1\\philho\\locals~1\\temp\\bzr_C:\\Program Files\\_Text\\WinMerge\\WinMergeU.exehpabjl.log'
wdiff = diff --using "C:\\Program Files\\_Text\\WinMerge\\WinMergeU.exe"
# Bad: bzr: ERROR: [Errno 22] Invalid argument: 'c:\\docume~1\\philho\\locals~1\\temp\\bzr_C:\\Progra~1\\_Text\\WinMerge\\WinMergeU.exe4gi5or.log'
wdiff = diff --using C:\\Progra~1\\_Text\\WinMerge\\WinMergeU.exe
Использование:
Bazaar (bzr) 1.11
Python interpreter: C:\Program Files\_Dev\Bazaar\python25.dll 2.5.2
На самом деле, ужасная (и неловкая) правда заключается в том, что, похоже, одна из моих предыдущих попыток сработала, но я ничего не видел ... потому что я проверял файл с фиксацией! Полагаю, я ожидал, что по умолчанию он сравнивает последние две версии или что-то в этом роде.
В любом случае, как я уже писал в комментарии, я не хочу помещать каталог WinMerge в мой уже слишком длинный путь, поэтому я взял промежуточный путь, создав командный файл и поместив его в каталог Bazaar, который уже находится в дорожка.
По крайней мере, это работает, и я могу легко добавить параметры, если это необходимо.
[ALIASES]
wdiff = diff --using winmerge.cmd
# winmerge.cmd contains:
"C:\Program Files\_Text\WinMerge\WinMergeU.exe" %1 %2
Может быть, я должен поставить это как решение в теме, хотя ему не хватает элегантности.
Для записи, пока мы находимся на теме внешних инструментов, я также добавил в bazaar.conf:
editor = C:/Program Files/_Text/SciTE/SciTE.exe
Используется, например, коммитом (без опции -m).
Следующий шаг: всплыть. Если присмотреться, то не похоже, что WinMerge можно использовать там, без 3-стороннего слияния. Я мог бы использовать слияние Perforce, это бесплатно, и я к этому привык.
Просто примечание для таких же смущенных, как и я: extmerge не является заменой графического интерфейса для слияния. Если вы запустите его, он не сообщит о конфликте, даже если слияние сообщает о них. На самом деле, вы должны сначала запустить merge, а затем extmerge, чтобы использовать сгенерированные / измененные файлы и выполнить работу ...
Если вы все равно хотите использовать WinMerge, возможно, для сравнения ДРУГОГО и ЭТОГО, вы можете использовать:
external_merge = "C:/Program Files/_Text/WinMerge/WinMergeU.exe %o %t %r"
Я надеюсь, что мои попытки / замечания здесь будут полезны для некоторых других людей ...: -)
[UPDATE]
Oookaaay!
Вот и я растерялся! Сообщение в списке рассылки Bazaar просветило мою бедную душу:
« Вы знаете, что bzr также обеспечивает diff --using, верно? Вы предпочитаете версию в difftools? » - Аарон Бентли, 2009-04-03 в Re: difftools, 'bzr diff -использование footool 'и' diffuse '
Aargh! Нет, я этого не знал.
Я удалил плагин difftools, отредактировал свою строку так:
wdiff = diff --using "C:/Program Files/_Text/WinMerge/WinMergeU.exe"
и он работал отлично, из коробки! Я не уверен, почему этот плагин difftools не помечен как устаревший.
Я оставляю этот вопрос для справки на случай, если другие новички, такие как я, тоже запутались. И я могу хотя бы выбрать ответ. Спасибо!