Используя Mercurial и не сравнивать 3(bc3) в качестве инструмента сравнения?

В Windows я могу использовать Winmerge в качестве внешнего инструмента сравнения для HG, используя Mercurial.ini и т. д.
Используя некоторые параметры, вы можете найти их в Интернете (я думаю, это японский сайт). В любом случае, вот, например:

 hg winmerge -r1 -r2 

Перечислите изменения файла (ов) между rev1 и rev2 в winmerge. Я могу просто нажать, какой файл для сравнения

но для bc3:

 hg bcomp -r1 -r2 

заставит bc3 открыть диалог, в котором указано, что временный каталог не найден.

Максимум, что я могу сделать, используя bc3 и hg, это

 hg bcomp -r1 -r2 myfile.cpp 

который откроет diff между rev1 и rev2 файла myfile.cpp

Таким образом, кажется, что hg+bc3 не может успешно подтвердить все изменения файлов между ревизиями. Только в состоянии проверить 1 файл за один раз.
Кто-нибудь может использовать bc3 + hg лучше?

редактировать: проблема решена!

Получил решение со страницы поддержки http://www.scootersoftware.com/support.php?zz=kb_vcs.php>scooter. Я должен использовать bcompare вместо bcomp Вот фрагмент моего mercurial.ini

[расширения]
hgext.win32text =
; MHD добавляет
hgext.extdiff = 
; MHD добавляет для до н.э.
[Extdiff]
cmd.bc3 = bcompare
opts.bc3 = / ro
; MHD добавляет для Winmerge;[Extdiff];cmd.winmerge = WinMergeU;opts.winmerge = /r /e /x /ub

9 ответов

Beyond-Compare-3 - удивительный инструмент. Я рекомендую несколько настроек для настройки:

[extensions]
extdiff =

[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly

[merge-tools]
bcomp.executable = C:\Program Files\Beyond Compare 3\BComp
bcomp.args = /leftreadonly /centerreadonly $local $other $base $output
bcomp.priority = 1

[ui]
merge = bcomp

[tortoisehg]
authorcolor = True
vdiff = bcomp

Лично я обнаружил, что лучший конфиг Beyond Compare можно найти в Mercurial mergetools.rc file файл:

[merge-tools]
....
; Windows version of Beyond Compare
beyondcompare3.args=$local $other $base $output /ro /lefttitle=local /centertitle=base /righttitle=other /automerge /reviewconflicts /solo
beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3
beyondcompare3.regname=ExePath
beyondcompare3.gui=True
beyondcompare3.priority=-2
beyondcompare3.diffargs=/lro /lefttitle='$plabel1' /righttitle='$clabel' /solo /expandall $parent $child

Я также обнаружил, что важно НЕ включать Beyond Compare в extdiff раздел, поэтому он будет использовать beyondcompare3 от merge-tools раздел с diffargs аргументы. (Я имею beyondcompare3 указано в обоих ui.merge а также tortoisehg.vdiff)

Мне пришлось добавить следующее, чтобы оно работало на моей машине:

[extensions]
extdiff =

[extdiff]
cmd.bc3 = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bc3 = /ro

Если вы продолжаете получать эту ошибку "Папка недоступна" от BC (у меня это было, когда у меня одновременно было открыто несколько экземпляров BC), попробуйте добавить опцию /solo в командной строке, то есть:

[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly /solo

Источник: форум поддержки Scooter Software

Оформить заказ на этой странице со страницы поддержки Scooter Software - она ​​также содержит настройки для большинства систем контроля версий - одна для моего списка закладок!

Snippet:

Для настройки Mercurial вам нужно отредактировать файл%USERPROFILE%\Mercurial.ini или $HOME/.hgrc. Добавьте следующие строки, используя существующие разделы INI, если они уже существуют:

разность

[extensions] extdiff =

[extdiff] 
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /ro

[tortoisehg] vdiff = bcomp 

После настройки вы можете сравнить ревизии из командной строки, используя

hg bcomp -r <rev1> [-r <rev2>] [<filename>]

Трехстороннее слияние (v3 Pro)

[merge-tools] 
bcomp.executable = C:\Program Files\Beyond Compare 3\BComp 
bcomp.args = $local $other
$base $output bcomp.priority = 1
bcomp.premerge = True bcomp.gui = True

[ui] merge = bcomp

Все ответы, приведенные на данный момент, относятся к Windows. Вот моя конфигурация для тех, кто использует Linux.

разность

[extensions]
extdiff =

[extdiff]
cmd.bcomp = bcompare
opts.bcomp = -ro1

4-х полосное слияние (v3 Pro)

[merge-tools]
bcomp.executable = bcompare
bcomp.args = -title1='First Parent' -title2='Second Parent' -title3='Common Ancestor' -title4='Output' -ro1 -ro2 -ro3 $local $other $base $output
bcomp.premerge = True
bcomp.gui = True

-ro#: Отключение редактирования на указанной стороне

-title#=<title>: Показывает описание вместо имени файла при редактировании пути

# символ: 1= слева, 2= справа, 3= центр, 4= выход

Для большего количества вариантов bcompare, просто выполните bcompare -help в консоли.

Я попробовал предложения, данные в то время, но ни один не работал.

Я нашел следующие работы:

  1. Добавить вне каталога установки сравнения в вашу систему path
  2. Откройте глобальные настройки и установите инструменты сравнения на bcompare

Теперь попробуйте diff - Beyond Compare!

Если у вас возникли проблемы с правильным анализом конфигурации, обратите внимание, что любое пространство для любой переменной или имени раздела приведет к неправильному анализу конфигурации. Я продолжал копировать и вставлять различные конфигурации и продолжал получать ошибки. Это просто закончилось тем, что пробелы были добавлены перед многими переменными, и это заставило его не анализировать.

Если вы используете TortoiseHg, вы можете установить инструмент слияния на Beyond Compare, выбрав File -> Settings, а затем в TortoiseHg выберите Visual Diff Tool и Three-way Merge Tool. Этот параметр влияет на слияния, которые также устанавливаются через командную строку.

Другие вопросы по тегам