Я хотел бы настроить Visual Studio на открытие Beyond Compare по умолчанию в качестве инструмента diff. Как я могу это сделать?
Как настроить Visual Studio на использование Beyond Compare
Ответ 1
В Visual Studio перейдите в меню "Сервис", выберите "Параметры", "Управление источником" (в среде TFS, щелкните Visual Studio Team Foundation Server) и нажмите кнопку "Настроить пользовательские инструменты".
Нажмите кнопку "Добавить".
Введите/выберите следующие опции для сравнения:
- Расширение:
.*
- Операция:
Compare
- Команда:
C:\Program Files\Beyond Compare 3\BComp.exe
(замените правильный путь для вашего устройства, включая номер версии) - Аргументы:
%1 %2 /title1=%6 /title2=%7
Если вы используете Beyond Compare Professional (трехстороннее слияние):
- Расширение:
.*
- Операция:
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
в конец аргументов; это гарантирует, что каждое сравнение открывается в новом окне, работая над проблемой с вкладками.
Ответ 2
Visual Studio с Git для Windows
Если вы используете GIT в качестве системы управления исходным кодом вместо (довольно устаревшего) TFVC, тогда Visual Studio не имеет параметров для настройки чего-либо подобного.
Вместо этого он (на мой взгляд, справедливо) использует настройки файла конфигурации GIT. Поэтому, если у вас уже есть настройка GIT для использования Beyond Compare или любого другого стороннего программного обеспечения для сравнения, он просто подберет его и начнет его использовать.
Если нет, просто установите его (см. здесь для получения дополнительной и, возможно, более актуальной справки). Соответствующая информация для настройки Visual Studio с Beyond Compare 4:
- Откройте Visual Studio.
- Выберите "Параметры" в меню "Сервис".
- Выберите "Параметры плагинов" в ветки "Контроль исходного кода" в левом дереве управления.
- Выберите Microsoft Git Provider в разделе "Параметры подключаемых модулей" на правой панели.
- Отредактируйте глобальный конфигурационный файл git (расположение зависит от ОС для Windows, это
%HOMEDRIVE%%HOMEPATH%/.gitconfig
. См. здесь для получения информации) ИЛИ, если вы хотите, чтобы он был специфичен для репозитория, то после запуска проекта в репозитории Git отредактируйте Конфигурационный файл в папке .git в папке проекта. Измените файл конфигурации, чтобы отразить следующие изменения:
[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
(в папке решения) и удалите все переопределения для вышеуказанных настроек.
Спасибо пескарям в комментариях за то, что они снова привлекли мое внимание.
Примечание: я продолжаю сталкиваться с этим, но я использую VS с GIT и ответы не верны, и хотя в некоторых комментариях упоминается URL с правильным ответом это не ясно, и если я продолжал пропускать это, я уверен, что другие будут надеяться, что это решит эту проблему.
Ответ 3
Если вы используете TFS, вы можете найти более подробную информацию в конфигурации diff/merge в Team Foundation - общие значения Command и Argument
В нем показано, как настроить следующие инструменты:
- WinDiff
- DiffDoc (для файлов Word)
- WinMerge
- Beyond Compare
- KDiff3
- Araxis
- Сравните это!
- SourceGear DiffMerge
- Beyond Compare 3
- TortoiseMerge
- Visual SlickEdit
Ответ 4
Мне было скучно делать это каждые 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 не кэширует ключ, поэтому вступает в силу немедленно.
Ответ 5
В Visual Studio 2008 + перейдите к
Tools menu --> select Options
В окне параметров → expand Source Control → Select Subversion User Инструменты → Выберите Beyond Compare
и нажмите кнопку "ОК".
Ответ 6
VS2013 на 64-разрядной Windows 7 требует следующих настроек: Инструменты | Варианты | Контроль источника | Jazz Source Control
ПРОВЕРЬТЕ ПРОВЕРКУ РАБОТЫ Используйте инструмент внешнего сравнения... (легко пропустить это)
2-полосная Сравнить Местоположение исполняемого файла: C:\Program Files (x86)\Beyond Compare 3\BCompare.exe
Сравнение с 3-сторонним конфликтом Местоположение исполняемого файла: C:\Program Files (x86)\Beyond Compare 3\BCompare.exe
Ответ 7
BComp.exe также работает в сценарии с несколькими вкладками, поэтому нет необходимости добавлять/соло, если вам действительно не нужны отдельные окна для каждого сравнения файлов. Протестировано/проверено на Beyond Compare 3 и 4. Мораль: используйте BComp.exe, а не BCompare.exe, для конфигурации внешнего сравнения VS.
Ответ 8
Ответ, отправленный @schellack, идеально подходит для большинства сценариев, но я хотел, чтобы Beyond Compare смоделировал представление "2 Way merge with the panel", которое Visual Studio использует в своем собственном окне слияния.
Эта конфигурация скрывает среднюю панель (которая в большинстве случаев не используется AFAIK).
%1 %2 "" %4 /title1=%6 /title2=%7 /title3="" /title4=%9
Благодаря Morgen
Ответ 9
Я использую 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
Ответ 10
Я использую 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"