我想将Visual Studio配置为默认情况下打开Beyond Compare作为diff工具。我怎么能这样做?
答案 0 :(得分:535)
在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(3合并):
.*
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
添加到参数的末尾;这样可以确保在新窗口中打开每个比较,解决选项卡问题。
答案 1 :(得分:63)
如果您使用GIT作为source code management system而非(相当过时)TFVC,则Visual Studio无法选择配置此类内容。
相反,(我认为正确)使用GIT config file's setting。因此,如果您已经使用GIT设置来使用Beyond Compare或任何其他第三方比较软件,它就会选择它并开始使用它。
如果没有,那么只需将其设置(请参阅here以获取更多可能更新的帮助)。使用Beyond Compare 4设置Visual Studio的相关信息是:
%HOMEDRIVE%%HOMEPATH%/.gitconfig
。请参阅here获取信息)或者如果您希望它是repo specifict,那么在启动项目之后在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 repo
同时它将添加一大堆覆盖到.git/config
文件
强迫它再次使用Visual Studio(感谢MS!)。
因此,在设置项目后,通过其他方式创建git repo
(例如通过SourceTree或命令行等...)或编辑.git/config
文件
(在解决方案文件夹中)并删除上述设置的所有覆盖
感谢minnow在评论中再次引起我的注意。
注意:我一直在讨论这个问题,但我正在使用VS与GIT和 答案是不正确的,虽然有些评论提到了一个URL 如果答案是正确的,那我就不清楚了,如果我一直想念它,我就是 确定其他人会如此希望这将解决这个问题。
答案 2 :(得分:15)
如果您使用的是TFS,可以在diff/merge configuration in Team Foundation - common Command and Argument values
中找到更多信息它显示了如何配置以下工具:
答案 3 :(得分:13)
# .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'}
}
在我的机器上运行。因人而异。没有保证,也没有退款。 VS似乎没有缓存密钥,因此立即生效。
答案 4 :(得分:8)
在Visual Studio 2008 +中,转到
Tools menu --> select Options
在选项窗口中 - >扩展源代码管理 - >选择Subversion User 工具 - >选择Beyond Compare
并单击“确定”按钮..
答案 5 :(得分:2)
64位Windows 7上的VS2013需要以下设置: 工具|选项|源控制|爵士源控制
检查复选框使用外部比较工具......(很容易错过)
双向比较 可执行文件的位置:C:\ Program Files(x86)\ Beyond Compare 3 \ BCompare.exe
三方冲突比较 可执行文件的位置:C:\ Program Files(x86)\ Beyond Compare 3 \ BCompare.exe
答案 6 :(得分:2)
BComp.exe也适用于多标签场景,因此除非您真的需要为每个文件比较分别使用单独的窗口,否则无需添加/ solo。在Beyond Compare 3和4上测试/验证。道德:使用BComp.exe,而不是BCompare.exe,用于VS外部比较工具配置。
答案 7 :(得分:2)
@schellack发布的答案对于大多数场景来说都是完美的,但我希望Beyond Compare能够模拟与结果面板合并的 2 Way'查看Visual Studio在其自己的合并窗口中使用。
此配置隐藏了中间面板(在大多数情况下未使用AFAIK)。
%1 %2 "" %4 /title1=%6 /title2=%7 /title3="" /title4=%9
感谢Morgen
答案 8 :(得分:1)
我在Visualstudio.com托管(msdn)上使用VS 2017与Git托管的项目
以上链接适用于" 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
答案 9 :(得分:1)
我将 BC3 用于我的git diff,但我也add vscode to the list of useful git diff tools。与 vs ide 体验相比,某些用户更喜欢 vscode 。
git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"