如何configurationVisual Studio以使用Beyond Compare

我想configurationVisual Studio以打开Beyond Compare作为diff工具。 我该怎么做?

在Visual Studio中,转至工具菜单,select选项 ,展开源代码pipe理 ,(在TFS环境中,单击Visual Studio Team Foundation Server),然后单击configuration用户工具button。

图像显示配置用户工具按钮的位置

点击添加button。

input/select以下选项进行比较:

  • 扩展名.*
  • 操作Compare
  • 命令C:\Program Files\Beyond Compare 3\BComp.exe (replace为您的机器的正确path,包括版本号)
  • 参数%1 %2 /title1=%6 /title2=%7

如果使用Beyond Compare Professional(3-way Merge):

  • 扩展名.*
  • 操作Merge
  • 命令C:\Program Files\Beyond Compare 3\BComp.exe (replace为您的机器的正确path,包括版本号)
  • 参数%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

如果使用Beyond Compare v3 / v4 Standard或Beyond Compare v2(2-way Merge):

  • 扩展名.*
  • 操作Merge
  • 命令C:\Program Files\Beyond Compare 3\BComp.exe (replace为您的机器的正确path,包括版本号)
  • 参数%1 %2 /savetarget=%4 /title1=%6 /title2=%7

如果您在超越比较中使用选项卡

如果在标签模式下运行“超越比较”,当您从Visual Studio中每次比较或合并多个文件时,可能会感到困惑。 为了解决这个问题,你可以将参数/solo添加到参数的末尾; 这可确保每个比较都在新窗口中打开,并通过制表符来解决问题。

Visual Studio与Git的Windows

如果您使用GIT作为您的源代码pipe理系统而不是(相当过时的) TFVC,那么Visual Studio没有configuration类似这样的选项。
相反它(在我看来)使用GITconfiguration文件的设置 。 所以如果你已经有GIT设置使用Beyond Compare或者任何其他的第三方比较软件,它只会select它并开始使用它。

如果没有,那就把它设置好(参见这里,以获得更多的帮助)。 使用Beyond Compare 4设置Visual Studio的相关信息是:

  1. 打开Visual Studio。
  2. 从工具菜单中select选项。
  3. 在左侧树形控件的Source Control分支下selectPlug-In Settings。
  4. 在右侧窗格的“插件设置”下select“Microsoft Git Provider”。
  5. 编辑全局的gitconfiguration文件(该位置是操作系统特定的窗口它是%HOMEDRIVE%%HOMEPATH%/.gitconfig 。请参阅这里的信息)或者如果你想它是特定的回购然后在Git仓库中启动项目后,编辑在项目文件夹的.git文件夹中的configuration文件。
  6. 更改configuration文件以反映以下更改:

[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\"

注意:我一直在遇到这个问题,但我使用VS和GIT,答案是不正确的,尽pipe一些评论提到了一个正确答案的URL,但是不清楚,如果我一直想念它,我相信别人会这样希望这将解决这个问题。

如果您正在使用TFS,可以在Team Foundation中的差异/合并configuration中find更多信息- 常见的命令和参数值

它显示了如何configuration以下工具:

  • WinDiff的
  • DiffDoc(用于Word文件)
  • 的WinMerge
  • 超越比较
  • KDiff3
  • Araxis
  • 比较一下!
  • SourceGear DiffMerge
  • 超越比较3
  • 如果TortoiseMerge
  • Visual SlickEdit

当新版本的Visual Studio发布,或者我移动个人电脑,或者一个新成员join团队,我每隔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'} } 

在我的机器上工作。 因人而异。 没有保证,不退款。 VS没有出现caching键,所以立即生效。

在Visual Studio 2008 +中,转到

 Tools menu --> select Options 

在这里输入图像描述

在选项窗口 – >展开源代码pipe理 – >selectSubversion用户工具 – >select超越比较

并单击确定button..

在64位Windows 7上的VS2013需要这些设置:工具| 选项| 源代码pipe理| 爵士音源控制

检查CHECKBOX使用外部比较工具…(很容易错过)

2-Way比较可执行文件的位置:C:\ Program Files(x86)\ Beyond Compare 3 \ BCompare.exe

可执行文件的三向冲突比较位置:C:\ Program Files(x86)\ Beyond Compare 3 \ BCompare.exe

BComp.exe也适用于多标签场景,所以除非你真的想为每个文件比较单独的窗口,否则不需要添加/独奏。 testing/validation超越比较3和4.道德:使用BComp.exe,而不是BCompare.exe,VS外部比较工具configuration。

我使用VS 2017与visualstudio.com托pipe与Git项目托pipe(MSDN)

上面的链接用“GITHUB FOR WINDOWS”指令为我工作。

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

configuration文件位于“c:\ users \ username.gitconfig”所示的位置,我只是将BC4的更改为BC3的位置,并使用了相应的path:

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

@schellack发布的答案对于大多数场景来说是完美的,但是我希望Beyond Compare能够模拟Visual Studio在自己的合并窗口中使用的“2 Way合并结果面板”视图。

这个configuration隐藏了中间面板(在大多数情况下AFAIK未使用)。

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

感谢Morgen