Использование WinMerge с базаром - PullRequest
1 голос
/ 27 февраля 2009

Я много искал, обнаружил, что некоторые люди утверждают, что они это сделали, но я не могу заставить его работать.

Как использовать 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 не помечен как устаревший.

Я оставляю этот вопрос для справки на случай, если другие новички, такие как я, тоже запутались. И я могу хотя бы выбрать ответ. Спасибо!

Ответы [ 4 ]

5 голосов
/ 27 февраля 2009
bzr diff --using "C:/Program Files/WinMerge/WinMergeU.exe"

Вы можете добавить это к псевдонимам в bazaar.conf

Или, если в переменной среды PATH есть C: \ Program Files \ WinMerge, вы можете использовать его как:

bzr diff --using WinMergeU.exe
2 голосов
/ 10 марта 2009

Мне показалось, что это работает:

bzr diff --using "C:\\program files\\winmerge\\winmergeu.exe"

Кроме того, если вы не можете заставить его работать, я бы предложил использовать инструменты пользовательского интерфейса q *, например:

bzr qdiff
bzr qlog
bzr qcommit

.. и т.д.

2 голосов
/ 28 февраля 2009

Читали ли вы файл README, поставляемый с плагином difftools? Объяснил вариант --using.

Кроме того, пройдя через базар, установленный на моем компьютере с Windows, который некоторое время не обновлялся, вы найдете свой файл конфигурации в C: \ Documents and Settings \ username \ Application Data \ базар \ 2,0 \ bazaar.conf

Добавьте следующее в раздел [ALIASES] (добавьте этот раздел, если он не существует):

[ALIASES]
gdiff = diff --using C:\Progra~1\WinMerge\WinMergeU.exe

Измените путь в соответствии с вашей установкой. Тогда вы можете просто пойти

bazaar gdiff

вместо

bazaar diff
1 голос
/ 04 апреля 2013

Черепаховый базар-> Настройки-> Основные настройки базара-> Разница-> Добавить не работает для меня Я стараюсь использовать ответы выше, но, к сожалению, они тоже не работают. Но я использовал ответы для базы, и я нахожу решение. Я отредактировал

C:\Documents and Settings\*username*\Application Data\bazaar\2.0\qbazaar.conf (not bazaar.conf)

и добавил строку

[EXTDIFF]
WinMerge = "C:/Program Files/TC UP/PLUGINS/Media/WinMerge/WinMergeU.exe"

Работает нормально, и я могу выбирать между встроенным diff и WinMerge.

...