Como configurar o Visual Studio para usar o Beyond Compare

Respostas:

561

No Visual Studio, vá para o menu Ferramentas , selecione Opções , expanda Controle de Origem , (em um ambiente TFS, clique em Visual Studio Team Foundation Server) e clique no botão Configurar Ferramentas do Usuário .

imagem para mostrar a localização do botão Configurar Ferramentas do Usuário

Clique no botão Adicionar .

Digite / selecione as seguintes opções para Comparar:

  • Extensão :.*
  • Operação :Compare
  • Comando : C:\Program Files\Beyond Compare 3\BComp.exe(substitua pelo caminho apropriado para sua máquina, incluindo o número da versão)
  • Argumentos :%1 %2 /title1=%6 /title2=%7

Se você estiver usando o Beyond Compare Professional (mesclagem de 3 vias):

  • Extensão :.*
  • Operação :Merge
  • Comando : C:\Program Files\Beyond Compare 3\BComp.exe(substitua pelo caminho apropriado para sua máquina, incluindo o número da versão)
  • Argumentos :%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

Se você usar o Beyond Compare v3 / v4 Standard ou Beyond Compare v2 (mesclagem bidirecional):

  • Extensão :.*
  • Operação :Merge
  • Comando : C:\Program Files\Beyond Compare 3\BComp.exe(substitua pelo caminho apropriado para sua máquina, incluindo o número da versão)
  • Argumentos :%1 %2 /savetarget=%4 /title1=%6 /title2=%7

Se você usar as guias no Beyond Compare

Se você executar o Beyond Compare no modo com guias, ele poderá ficar confuso quando você diferenciar ou mesclar mais de um conjunto de arquivos por vez no Visual Studio. Para corrigir isso, você pode adicionar o argumento /soloao final dos argumentos; isso garante que cada comparação seja aberta em uma nova janela, contornando o problema com guias.

schellack
fonte
17
Note-se que para Beyond Compare 3, você deve realmente estar usando BComp.exe - ver scootersoftware.com/vbulletin/showthread.php?t=3461
Joe
5
Atualizei esta resposta para suportar o Beyond Compare v3 Pro / Std e o Beyond Compare v2 (a v3 oferece mesclagem de três vias) e os argumentos atualizados do site oficial do BC: scootersoftware.com/support.php?zz=kb_vcs
Evan Wondrasek
32
Se você executar o Beyond Compare no modo com guias, ele poderá ficar confuso quando você diferenciar ou mesclar mais de um conjunto de arquivos por vez no Visual Studio. Para corrigir isso, você pode adicionar o argumento "/ solo" ao final dos argumentos; isso garante que cada comparação seja aberta em uma nova janela, contornando o problema com guias.
Josh Sklare
16
Ao usar o suplemento Git para Visual Studio, não há botão Configurar Ferramentas do Usuário. Alguém sabe uma maneira de conectar o suplemento Git para usar além da comparação?
Stephen Price
7
A instalação do Beyond Compare 4 é a mesma, assim como o Visual Studio 2013. Para oferecer suporte à versão 4, basta alterar o "3" no caminho COMMAND para "4". É bastante óbvio, mas deve ser observado. Por exemplo, na minha estação de trabalho, o caminho é: C: \ Arquivos de Programas (x86) \ Beyond Compare 4 \ BCompare.exe
Mike Christian
86

Visual Studio com Git para Windows

Se você estiver usando o GIT como seu sistema de gerenciamento de código-fonte em vez do (bastante datado) TFVC , o Visual Studio não terá opções para configurar algo assim.
Em vez disso, (justamente na minha opinião) usa a configuração do arquivo de configuração do GIT . Portanto, se você já possui a configuração do GIT para usar o Beyond Compare ou qualquer outro software de comparação de terceiros, ele simplesmente pega isso e começa a usá-lo.

Caso contrário, basta configurá-lo (consulte aqui para obter mais e provavelmente mais ajuda atualizada). As informações relevantes para a configuração do Visual Studio com o Beyond Compare 4 são:

  1. Abra o Visual Studio.
  2. Selecione Opções no menu Ferramentas.
  3. Selecione Configurações de plug-in na ramificação Source Control do controle em árvore do lado esquerdo.
  4. Selecione Microsoft Git Provider em Configurações de plug-in no painel direito.
  5. Edite o arquivo de configuração global do git (o local é específico do SO para o Windows %HOMEDRIVE%%HOMEPATH%/.gitconfig. Veja aqui para obter informações) OU se você deseja que ele seja específico do repositório, depois de iniciar um projeto em um repositório Git, edite o arquivo de configuração na pasta .git na pasta pasta de projeto.
  6. Altere o arquivo de configuração para refletir as seguintes alterações:

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

Se o instalador de 64 bits for usado, verifique o nome do executável. O meu era 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\"

Questões: Se você criar um novo projeto e obter VS para criar o repositório git, ao mesmo tempo que vai adicionar uma carga de substituições para o .git/configarquivo forçando-o a usar o Visual Studio novamente (Obrigado por isso MS!). Portanto, crie o repositório git por outro meio após a instalação do projeto (como via SourceTree ou pela linha de comando etc ...) OU edite o .git/configarquivo (na pasta da solução) e remova quaisquer substituições das configurações acima.
Obrigado ao minnow nos comentários por trazer minha atenção para ele novamente.

Nota: Eu continuo me deparando com isso, mas estou usando o VS com GIT e as respostas não estão corretas. Embora alguns dos comentários mencionem um URL com a resposta correta, não está claro e, se eu o perdi, tenho certeza de que outros o farão. espero que isso resolva esse problema.

GazB
fonte
Muito útil, pois estou usando o Git para Windows.
precisa saber é o seguinte
2
Porém, cuidadoso - o VS 2015, para mim, se configurou como a ferramenta diff / merge no arquivo de configuração git local no repositório local .... substituindo assim o global. Basta remover as entradas na configuração do repositório local e você deve ser bom.
Jester
3
Haha apenas tentou votar nesta resposta INCRÍVEL ... então dizia: "Você não pode votar em sua própria resposta" ... OH LOL Deus abençoe não ter memória! ;)
GazB 28/11
4
BC4 instalado num percurso ligeiramente diferente, o dir 64b, na minha máquina:\"C:\\Program Files\\Beyond Compare 4\\BComp.exe\"
GraehamF
11
Eu descobri que definir a configuração global do git não funcionou. Eu tive que modificar a configuração do repositório. VS2017. Mais alguém experimentando o mesmo? E @GazB, desconfio que o GraehamF, como eu, tenha apenas a versão de 64 bits do BC instalada nas janelas de 64 bits, portanto o caminho instalado é o correto e esperado dos Arquivos de Programas e não o PF (x86).
minnow
13

Eu me cansei de fazer isso a cada 6 meses quando uma nova versão do Visual Studio é lançada, ou movo PCs, ou um novo membro se junta à equipe. Então, 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'}
}

Funciona na minha máquina. YMMV. Nenhuma garantia, nenhum reembolso. O VS não parece armazenar em cache a chave, portanto entra em vigor imediatamente.

piers7
fonte
11
Atualmente, seu $ bcPath = 'C: \ Arquivos de Programas (x86) \ Beyond Compare 4 \ BCompare.exe' para a versão mais recente. Então, se só isso foi combinado com o chocolatey instalar ... (graças por sinal)
James Woolfenden
Isso é ótimo. Muito obrigado por postar essas informações, facilitará a vida!
d3r3kk
11
Provavelmente deve apenas atualizar para ler a entrada do registro: computer\hkey_local_machine\scooter software\beyond compare\exepath.
Erik Philips
8

No Visual Studio 2008 +, vá para o

Tools menu -->  select Options 

insira a descrição da imagem aqui

Na janela Opções -> expanda Controle de origem -> selecione Ferramentas do usuário do Subversion -> selecione além da comparação

e clique no botão OK ..

BJ Patel
fonte
2
Observe que os bits 'subversion' desta resposta são específicos para se você estiver usando o SVN como seu provedor de controle de origem.
precisa saber é o seguinte
11
SVN somente, não se aplica a TFS ou Git ou qualquer outro provedor SCC
Adam Plocher
3

A resposta postada por @schellack é perfeita para a maioria dos cenários, mas eu queria que o Beyond Compare simulasse a exibição 'Mesclagem de 2 vias com um painel de resultados' que o Visual Studio usa em sua própria janela de mesclagem.

Essa configuração oculta o painel do meio (que na maioria dos casos não é usado no AFAIK).

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

Com agradecimentos a Morgen

Ted
fonte
2

O VS2013 no Windows 7 de 64 bits requer estas configurações: Ferramentas | Opções | Controle de origem | Jazz Source Control

VERIFIQUE A CAIXA DE VERIFICAÇÃO Use uma ferramenta de comparação externa ... (fácil de perder)

Local do executável de comparação bidirecional: C: \ Arquivos de Programas (x86) \ Beyond Compare 3 \ BCompare.exe

Local da comparação do executável: C: \ Arquivos de programas (x86) \ Beyond Compare 3 \ BCompare.exe

Arvind
fonte
2

O BComp.exe também funciona em cenários com várias guias, portanto, não há necessidade de adicionar / solo, a menos que você queira realmente janelas separadas para cada comparação de arquivo. Testado / verificado no Beyond Compare 3 e 4. Moral: use BComp.exe, não BCompare.exe, para a configuração externa da ferramenta de comparação do VS.

Arvind
fonte
2

Estou usando o VS 2017 com projetos hospedados com Git na hospedagem visualstudio.com (msdn)

O link acima funcionou para mim com as instruções "GITHUB FOR WINDOWS".

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

O arquivo de configuração foi localizado onde indicado em "c: \ users \ username \ .gitconfig" e eu apenas alterei os BC4 para BC3 para minha situação e usei o caminho apropriado:

C: / Arquivos de Programa (x86) / Além da Comparação 3 / bcomp.exe

chuckc
fonte
1

Eu uso o BC3 para o meu diff git, mas também adiciono vscode à lista de ferramentas úteis do git diff . Alguns usuários preferem vscode sobre vs ide experiência.

Usando o código VS para Git Diff

git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
SliverNinja - MSFT
fonte