如何配置Visual Studio以使用Beyond Compare

MrB*_*les 361 beyondcompare visual-studio

我想配置Visual Studio默认情况下打开Beyond Compare作为diff工具.我怎样才能做到这一点?

sch*_*ack 551

在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的末尾; 这可确保每个比较在新窗口中打开,解决选项卡问题.

  • 如果在选项卡式模式下运行Beyond Compare,当您从Visual Studio一次对多个文件进行差异或合并时,可能会感到困惑.要解决此问题,您可以在参数的末尾添加参数"/ solo"; 这可确保每个比较在新窗口中打开,解决选项卡问题. (32认同)
  • 请注意,对于Beyond Compare 3,您实际上应该使用BComp.exe - 请参阅http://www.scootersoftware.com/vbulletin/showthread.php?t=3461 (17认同)
  • 使用Visual Studio的Git加载项时,没有"配置用户工具"按钮.任何人都知道一种方法来挂钩Git加载项以使用超出比较? (15认同)
  • Beyond Compare 4的设置与Visual Studio 2013相同.要支持版本4,只需将COMMAND路径中的"3"更改为"4"即可.这很明显,但应该注意.例如,在我的工作站上,路径为:C:\ Program Files(x86)\ Beyond Compare 4\BCompare.exe (7认同)
  • 我更新了这个答案,以支持Beyond Compare v3 Pro/Std和Beyond Compare v2(v3提供三向合并)和来自BC官方网站的更新参数:http://www.scootersoftware.com/support.php?zz = kb_vcs (5认同)
  • 感谢您的信息和链接 - 我用更好的可执行文件名称更新了我的答案. (3认同)
  • 要将Git for Windows配置为使用Beyond Compare作为外部差异实用程序,请按照http://www.scootersoftware.com/support.php?zz=kb_vcs#gitwindows上的说明进行操作. (3认同)
  • @StephenPrice在VS中使用BC和Git检查http://stackoverflow.com/questions/19461658/setting-up-beyond-compare-in-visual-studio-2013-when-using-git (2认同)

Gaz*_*azB 74

Visual Studio with Git for Windows

如果你使用GIT作为你的源代码管理系统而不是(相当过时的)TFVC,那么Visual Studio没有选项来配置这样的东西.
相反,它(在我看来正确)使用GIT配置文件的设置.因此,如果您已经使用GIT设置来使用Beyond Compare或任何其他第三方比较软件,它就会选择它并开始使用它.

如果没有,那么只需将其设置(请参阅此处以获取更多信息以及更新的帮助).使用Beyond Compare 4设置Visual Studio的相关信息是:

  1. 打开Visual Studio.
  2. 从工具菜单中选择选项.
  3. 在左侧树控件的Source Control分支下选择Plug-In Settings.
  4. 在右侧窗格的Plug-In Settings下选择Microsoft Git Provider.
  5. 编辑全局git配置文件(位置是Windows专用的操作系统%HOMEDRIVE%%HOMEPATH%/.gitconfig.请参阅此处获取信息)或者如果您希望它是repo specifict,那么在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\" 
    
    Run Code Online (Sandbox Code Playgroud)

如果使用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\"
Run Code Online (Sandbox Code Playgroud)

问题:如果您创建一个新的项目,并得到VS在同一时间创造的git回购其WILL覆盖的负载添加到.git/config文件,迫使其使用Visual Studio再次(感谢您的MS!).在项目设置完成后通过其他方式创建git repo(如通过SourceTree或命令行等...)或编辑.git/config文件(在解决方案文件夹中)并删除上述设置的任何覆盖.
感谢minnow在评论中再次引起我的注意.

注意:我一直遇到这个,但我使用VS和GIT并且答案不正确,虽然有些评论提到了一个带正确答案的网址但不清楚,如果我一直不知道,我相信其他人会如此希望这能解决这个问题.

  • BC4安装在我的机器上稍微不同的路径64b目录上:`\"C:\\ Program Files \\ Beyond Compare 4 \\ BComp.exe \"` (3认同)
  • 不过要小心 - 对我来说,VS 2015 将自己设置为本地存储库中 *local* git 配置文件中的差异/合并工具......从而覆盖全局。只需删除本地 repo 配置中的条目,你应该会很好。 (2认同)
  • 哈哈只是试图将这个令人惊讶的答案投票...然后它说"你不能对你自己的答案投票"......哦哈哈上帝保佑没有记忆!;) (2认同)

fre*_*sky 15

如果您使用的是TFS,则可以在Team Foundation中的diff/merge配置中找到更多信息- 常见的Command和Argument值

它显示了如何配置以下工具:

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


pie*_*rs7 13

当一个新版本的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'}
}
Run Code Online (Sandbox Code Playgroud)

适用于我的机器.因人而异.没有保证,也没有退款.VS似乎没有缓存密钥,因此立即生效.


BJ *_*tel 8

在Visual Studio 2008 +中,转到

Tools menu -->  select Options 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在选项窗口 - >展开源代码管理 - >选择Subversion用户工具 - >选择超越比较

然后单击确定按钮..

  • 请注意,如果您使用SVN作为源控件提供程序,则此答案的"subversion"位是特定的. (2认同)