Как настроить Visual Studio для использования Beyond Compare - PullRequest
353 голосов
/ 17 декабря 2010

Я хотел бы настроить Visual Studio для открытия Beyond Compare по умолчанию в качестве инструмента сравнения. Как я могу это сделать?

Ответы [ 10 ]

540 голосов
/ 17 декабря 2010

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

image to show location of the Configure User Tools button

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

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

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

При использовании Beyond Compare Professional (трехстороннее объединение):

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

При использовании Beyond Сравнение v3 / v4 Standard или Beyond Compare v2 (объединение в 2 направления):

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

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

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

67 голосов
/ 22 января 2016

Visual Studio с Git для Windows

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

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

  1. Откройте Visual Studio.
  2. Выберите «Параметры» в меню «Инструменты».
  3. Выберите подключаемый модульНастройки в ветви управления исходным кодом левого древовидного элемента управления.
  4. Выберите поставщика Microsoft Git в разделе «Параметры подключаемого модуля» на правой панели.
  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-репо одновременно, то это WILL добавить загрузку переопределений в файл .git/config, заставляя его снова использовать Visual Studio (спасибо за это MS!).Так что либо создайте git-репо с помощью другого средства после настройки проекта (например, через SourceTree или из командной строки и т. Д.), Либо отредактируйте файл .git/config (в папке решения) и удалите все переопределения для вышеуказанных настроек.
Спасибо minnow в комментариях за то, что снова привлекли мое внимание.

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

15 голосов
/ 21 мая 2013

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

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

  • WinDiff
  • DiffDoc (для файлов Word)
  • WinMerge
  • Beyond Compare
  • KDiff3
  • Araxis
  • Сравнить!
  • SourceGear DiffMerge
  • Beyond Compare 3
  • TortoiseMerge
  • Visual SlickEdit
13 голосов
/ 03 июля 2014

Мне надоело делать это каждые 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, похоже, не кэширует ключ, поэтому вступает в силу немедленно.

8 голосов
/ 23 мая 2013

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

Tools menu -->  select Options 

enter image description here

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

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

2 голосов
/ 19 сентября 2017

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

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

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

Благодаря Morgen

2 голосов
/ 19 августа 2016

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

2 голосов
/ 19 марта 2015

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

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

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

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

1 голос
/ 20 марта 2019

Я использую BC3 для моего git diff, но я бы также добавил vscode в список полезных инструментов git diff . Некоторые пользователи предпочитают vscode над против ide опыта.

Использование кода VS для Git Diff

git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
1 голос
/ 07 августа 2017

Я использую 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

...