Как настроить Visual Studio для использования Beyond Compare

Ответы:

561

В Visual Studio перейдите в меню « Сервис» , выберите « Параметры» , разверните « Управление исходным кодом» (в среде TFS выберите Visual Studio Team Foundation Server) и нажмите кнопку « Настроить инструменты пользователя» .

изображение, чтобы показать расположение кнопки Configure User Tools

Нажмите кнопку Добавить .

Введите / выберите следующие параметры для сравнения:

  • Расширение :.*
  • Операция :Compare
  • Команда : C:\Program Files\Beyond Compare 3\BComp.exe(замените правильный путь для вашей машины, включая номер версии)
  • Аргументы :%1 %2 /title1=%6 /title2=%7

При использовании Beyond Compare Professional (3-way Merge):

  • Расширение :.*
  • Операция :Merge
  • Команда : C:\Program Files\Beyond Compare 3\BComp.exe(замените правильный путь для вашей машины, включая номер версии)
  • Аргументы :%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

При использовании Beyond Compare v3 / v4 Standard или Beyond Compare v2 (двухстороннее слияние):

  • Расширение :.*
  • Операция :Merge
  • Команда : C:\Program Files\Beyond Compare 3\BComp.exe(замените правильный путь для вашей машины, включая номер версии)
  • Аргументы :%1 %2 /savetarget=%4 /title1=%6 /title2=%7

Если вы используете вкладки в Beyond Compare

Если вы запустите Beyond Compare в режиме вкладок, это может привести к путанице, если вы будете сравнивать или объединять более одного набора файлов одновременно из Visual Studio. Чтобы это исправить, вы можете добавить аргумент /soloв конец аргумента; это гарантирует, что каждое сравнение открывается в новом окне, обходя проблему с вкладками.

schellack
источник
17
Обратите внимание , что для Beyond Compare 3, вы должны фактически использовать BComp.exe - см scootersoftware.com/vbulletin/showthread.php?t=3461
Джо
5
Я обновил этот ответ на поддержку как Beyond Compare Pro v3 / Std и Beyond Compare v2 (v3 предлагает 3-полосные слияния) и обновленные аргументы с официального сайта ОК: scootersoftware.com/support.php?zz=kb_vcs
Evan Wondrasek
32
Если вы запустите Beyond Compare в режиме вкладок, это может привести к путанице, если вы будете сравнивать или объединять более одного набора файлов одновременно из Visual Studio. Чтобы это исправить, вы можете добавить аргумент "/ solo" в конец аргументов; это гарантирует, что каждое сравнение открывается в новом окне, обходя проблему с вкладками.
Джош Склэр
16
При использовании надстройки Git для Visual Studio кнопка «Настроить инструменты пользователя» отсутствует. Кто-нибудь знает способ подключить надстройку Git для использования вне всякого сравнения?
Стивен Прайс
7
Настройка Beyond Compare 4 такая же, как и в Visual Studio 2013. Для поддержки версии 4 просто измените «3» в пути COMMAND на «4». Это довольно очевидно, но следует отметить. Например, на моей рабочей станции путь: C: \ Program Files (x86) \ Beyond Compare 4 \ BCompare.exe
Майк Кристиан,
86

Visual Studio с Git для Windows

Если вы используете GIT в качестве системы управления исходным кодом вместо (довольно устаревшего) TFVC, то Visual Studio не имеет параметров для настройки чего-либо подобного.
Вместо этого он (на мой взгляд, справедливо) использует настройки файла конфигурации GIT . Поэтому, если у вас уже есть настройка GIT для использования Beyond Compare или любого другого стороннего программного обеспечения для сравнения, он просто подберет его и начнет использовать.

Если нет, то просто установите это (см. Здесь для дальнейшей и, возможно, более актуальной справки). Соответствующая информация для настройки Visual Studio с Beyond Compare 4:

  1. Откройте Visual Studio.
  2. Выберите «Опции» в меню «Инструменты».
  3. Выберите Plug-In Settings под веткой Source Control левого дерева управления.
  4. Выберите Microsoft Git Provider в разделе «Параметры подключаемых модулей» на правой панели.
  5. Отредактируйте глобальный конфигурационный файл git (расположение зависит от ОС для Windows, это %HOMEDRIVE%%HOMEPATH%/.gitconfig. См. Здесь для информации) ИЛИ, если вы хотите, чтобы он был специфичен для репозитория, то после запуска проекта в репозитории Git отредактируйте конфигурационный файл в папке .git в папка проекта.
  6. Измените файл конфигурации, чтобы отразить следующие изменения:

    [diff]
        tool = bc4
    [difftool "bc4"]
        cmd = \"C:\\Program Files (x86)\\Beyond Compare 4\\BComp.exe\" \"$LOCAL\" \"$REMOTE\"
    [merge]
        tool = bc4
    [mergetool "bc4"]
        cmd = \"C:\\Program Files (x86)\\Beyond Compare 4\\BComp.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" 
    

Если используется 64-битный установщик, проверьте имя исполняемого файла. Мой был BCompare.exe

[diff]
    tool = bc4
[difftool "bc4"]
    cmd = \"C:\\Program Files\\Beyond Compare 4\\BCompare.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = bc4
[mergetool "bc4"]
    cmd = \"C:\\Program Files\\Beyond Compare 4\\BCompare.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\"

Проблемы: Если вы создаете новый проект и получить VS , чтобы создать GIT репозиторий в то же время БУДЕТ добавить груз переопределений в .git/configфайл заставляя его использовать Visual Studio снова (спасибо за это MS!). Так что либо создайте git-репо с помощью другого средства после настройки проекта (например, через SourceTree или из командной строки и т. Д.), Либо отредактируйте .git/configфайл (в папке решения) и удалите все переопределения для вышеуказанных настроек.
Спасибо minnow в комментариях за то, что снова привлекли мое внимание.

Примечание: я продолжаю сталкиваться с этим, но я использую VS с GIT, и ответы не являются правильными, и хотя некоторые комментарии упоминают URL с правильным ответом, это не ясно, и если я продолжал пропускать это, я уверен, что другие будут так надеюсь, это решит эту проблему.

GazB
источник
Очень полезно, так как я использую Git для Windows.
MrBoJangles
2
Осторожно, хотя - VS 2015, для меня, настроил себя как инструмент сравнения / слияния в локальном файле конфигурации git в локальном репозитории ...., таким образом, переопределяя глобальный. Просто удалите записи в конфигурации локального репо, и все будет хорошо.
Шут
3
Ха-ха, просто попытался проголосовать за этот УДИВИТЕЛЬНЫЙ ответ ... затем он сказал: "Вы не можете голосовать за свой собственный ответ" ... О, Боже, благослови Бог, не имея памяти! ;)
ГазБ
4
BC4 установлен на моей машине немного другим путем, 64b dir:\"C:\\Program Files\\Beyond Compare 4\\BComp.exe\"
GraehamF
1
Я обнаружил, что настройка глобального git config не работает вообще. Мне пришлось изменить конфигурацию репо. VS2017. Кто-нибудь еще испытывает то же самое? И @GazB, я подозреваю, что GraehamF, как и я, просто установил 64-битную версию BC в 64-битных окнах, поэтому установленный путь - правильный, ожидаемый Program Files, а не PF (x86).
пескарь
15

Если вы используете TFS, вы можете найти больше информации в конфигурации diff / merge в Team Foundation - общие значения Command и Argument

Здесь показано, как настроить следующие инструменты:

  • WinDiff
  • DiffDoc (для файлов Word)
  • WinMerge
  • Вне всякого сравнения
  • KDiff3
  • Araxis
  • Сравните это!
  • SourceGear DiffMerge
  • Beyond Compare 3
  • TortoiseMerge
  • Visual SlickEdit
fresky
источник
13

Мне надоело делать это каждые 6 месяцев, когда выходит новая версия Visual Studio, или я перехожу на ПК, или в команду входит новый участник. Итак, PowerShell:

# .Synopsys
# Sets up Beyond Compare professional as Diff tool for all instances of Visual Studio on this PC
# If you don't use TFS, change the sccProvider as appropriate
[CmdLetBinding()]
param(
    $bcPath = 'C:\Program Files (x86)\Beyond Compare 3\BComp.exe',
    $sccProvider = 'TeamFoundation'
)

$ErrorActionPreference = 'stop';
$baseKey = 'REGISTRY::\HKCU\Software\Microsoft\VisualStudio\*'

function SetRegKeyProperties($keyPath, [hashtable]$keyProps){
    if(!(Test-Path $keyPath)){
        Write-Verbose "Creating $keyPath"
        # Force required here to recursively create registry path
        [void] (new-item $keyPath -Type:Directory -Force);
    }
    foreach($prop in $keyProps.GetEnumerator()){
        Set-ItemProperty -Path:$keyPath -Name:$prop.Key -Value:$prop.Value;
    }
}

$configBases = dir $baseKey | ? { $_.PSChildName -match '^\d+\.\d$' }
foreach($item in $configBases){
    Write-Host "Configuring $item"

    $diffToolsKey = Join-Path $item.PSPath "$sccProvider\SourceControl\DiffTools"
    SetRegKeyProperties (Join-path $diffToolsKey '.*\Compare') @{Command=$bcPath;Arguments='%1 %2 /title1=%6 /title2=%7'}
    SetRegKeyProperties (Join-path $diffToolsKey '.*\Merge') @{Command=$bcPath;Arguments='%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9'}
}

Работает на моей машине. YMMV. Нет гарантии, нет возврата. VS, похоже, не кэширует ключ, поэтому вступает в силу немедленно.

piers7
источник
1
В наши дни его $ bcPath = 'C: \ Program Files (x86) \ Beyond Compare 4 \ BCompare.exe' для последней версии. Так что, если бы только это сочеталось с шоколадной инсталляцией ... (кстати, спасибо)
Джеймс Вулфенден
Это замечательно. Большое спасибо за размещение этой информации, облегчит жизнь!
d3r3kk
1
Вероятно , нужно просто обновить , чтобы прочитать запись реестра: computer\hkey_local_machine\scooter software\beyond compare\exepath.
Эрик Филипс
8

В Visual Studio 2008 + перейдите к

Tools menu -->  select Options 

введите описание изображения здесь

В окне параметров -> разверните Управление исходным кодом -> выберите Инструменты пользователя Subversion -> выберите Beyond Compare

и нажмите кнопку ОК.

Би Джей Патель
источник
2
Обратите внимание, что биты 'subversion' в этом ответе специфичны, если вы используете SVN в качестве поставщика управления исходным кодом.
piers7
1
Только SVN, не относится к TFS или Git или любому другому провайдеру SCC
Адам Плохер
3

Ответ @schellack идеально подходит для большинства сценариев, но я хотел, чтобы Beyond Compare имитировал представление «Двустороннее слияние с панелью результатов», которое Visual Studio использует в своем собственном окне слияния.

Этот конфиг скрывает среднюю панель (которая в большинстве случаев не используется AFAIK).

 %1 %2 "" %4 /title1=%6 /title2=%7 /title3="" /title4=%9

Благодаря Моргену

Тед
источник
2

VS2013 на 64-битной Windows 7 требует следующих настроек: Инструменты | Варианты | Контроль источника | Jazz Source Control

ПРОВЕРЬТЕ ПРОВЕРКУ. Используйте внешний инструмент сравнения ... (легко пропустить это)

Расположение двустороннего сравнения исполняемого файла: C: \ Program Files (x86) \ Beyond Compare 3 \ BCompare.exe

Расположение трехстороннего сравнения конфликтов исполняемого файла: C: \ Program Files (x86) \ Beyond Compare 3 \ BCompare.exe

Эрвинд
источник
2

BComp.exe также работает в сценариях с несколькими вкладками, поэтому нет необходимости добавлять / Solo, если вы действительно не хотите отдельных окон для сравнения каждого файла. Протестировано / проверено на Beyond Compare 3 и 4. Мораль: используйте BComp.exe, а не BCompare.exe, для настройки внешнего инструмента сравнения VS.

Эрвинд
источник
2

Я использую VS 2017 с проектами, размещенными в Git на хостинге visualstudio.com (msdn)

Ссылка выше работала для меня с инструкциями "GITHUB FOR WINDOWS".

http://www.scootersoftware.com/support.php?zz=kb_vcs#githubwindows

Конфигурационный файл был расположен там, где он указывался в «c: \ users \ username \ .gitconfig», и я просто изменил BC4 на BC3 для моей ситуации и использовал соответствующий путь:

C: / Program Files (x86) / Beyond Compare 3 / bcomp.exe

chuckc
источник