Используя Mercurial и не сравнивать 3 (bc3) в качестве инструмента сравнения? - PullRequest
29 голосов
/ 27 ноября 2008

в 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

[extensions]
hgext.win32text =

;mhd adds
hgext.extdiff = 

;mhd adds for bc
[extdiff]
cmd.bc3 = bcompare
opts.bc3 = /ro

;mhd adds for winmerge
;[extdiff]
;cmd.winmerge = WinMergeU
;opts.winmerge = /r /e /x /ub

Ответы [ 9 ]

31 голосов
/ 21 июня 2009

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
12 голосов
/ 08 октября 2010

Лично я обнаружил, что лучшую конфигурацию 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)

3 голосов
/ 01 июля 2010

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

Отрывок:

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

Diff

[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
3 голосов
/ 21 апреля 2010

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

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

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

3 голосов
/ 01 февраля 2009

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

[extensions]
extdiff =

[extdiff]
cmd.bc3 = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bc3 = /ro
1 голос
/ 22 апреля 2011

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

Diff

[extensions]
extdiff =

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

4-Way Merge (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 голос
/ 27 июля 2010

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

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

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

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

0 голосов
/ 05 июля 2013

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

0 голосов
/ 22 июля 2011

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

...