我想将Visual Studio配置为默认情况下将Beyond Compare作为diff工具打开。我怎样才能做到这一点?
我想将Visual Studio配置为默认情况下将Beyond Compare作为diff工具打开。我怎样才能做到这一点?
Answers:
在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
如果您使用超越比较中的标签
如果在选项卡模式下运行“超越比较”,当您一次从Visual Studio差异化或合并多个文件集时,它可能会引起混淆。要解决此问题,可以将参数添加到参数/solo
的末尾。这样可以确保每个比较都在新窗口中打开,从而解决了标签问题。
如果您将GIT用作源代码管理系统,而不是(过时的)TFVC,则Visual Studio没有选择配置类似内容的选项。
相反,(我认为是正确的)它使用GIT配置文件的settings。因此,如果您已经具有GIT设置以使用Beyond Compare或任何其他第三方比较软件,它将选择并开始使用它。
如果不是,则只需进行设置(请参阅此处,以获取更多和可能更多的最新帮助)。使用Beyond Compare 4设置Visual Studio的相关信息是:
%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创建混帐回购协议,同时它WILL覆盖的负载添加到.git/config
文件,迫使其再次使用Visual Studio(感谢您的MS!)。因此,要么在项目设置完成后通过另一种方式创建git repo(例如通过SourceTree或命令行等),要么编辑.git/config
文件(在solution文件夹中)并删除上述设置的所有替代项。
感谢Minnow在评论中再次引起我的注意。
注意:我一直遇到这个问题,但是我正在使用VS和GIT,并且答案也不正确,尽管有些评论提到了带有正确答案的URL,但不清楚,如果我一直错过它,我相信其他人也会这样做。希望这将解决该问题。
\"C:\\Program Files\\Beyond Compare 4\\BComp.exe\"
如果您使用的是TFS,则可以在Team Foundation中的差异/合并配置中找到更多信息-常用命令和参数值
它显示了如何配置以下工具:
每当新版本的Visual Studio出现,我移动PC或新成员加入团队时,我每6个月都要这样做。因此,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似乎没有缓存密钥,因此立即生效。
computer\hkey_local_machine\scooter software\beyond compare\exepath
。
在Visual Studio 2008+中,转到
Tools menu --> select Options
在选项窗口->展开源代码控制->选择Subversion用户工具->选择超越比较
然后单击确定按钮。
我正在将VS 2017与在visualstudio.com托管(msdn)上由Git托管的项目一起使用
上面的链接通过“ GITHUB FOR WINDOWS”说明对我有用。
http://www.scootersoftware.com/support.php?zz=kb_vcs#githubwindows
配置文件位于“ c:\ users \ username \ .gitconfig”指示的位置,我根据情况将BC4更改为BC3,并使用了适当的路径:
C:/程序文件(x86)/超越比较3 / bcomp.exe
我将BC3用于git diff,但是我还将vscode添加到有用的git diff工具列表中。有些用户更喜欢vscode而不是ide体验。
git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"