web-dev-qa-db-fra.com

Comment configurer Visual Studio pour utiliser Beyond Compare

Je voudrais configurer Visual Studio pour ouvrir Beyond Compare par défaut en tant qu'outil de différenciation. Comment puis-je faire ceci?

354
MrBoJangles

Dans Visual Studio, accédez au menu Outils , sélectionnez Options , développez Contrôle de la source , (dans un environnement TFS, cliquez sur Visual Studio Team Foundation Server), puis cliquez sur le bouton Configurer l'utilisateur. Outils bouton.

image to show location of the Configure User Tools button

Cliquez sur le bouton Ajouter .

Entrez/sélectionnez les options suivantes pour comparer:

  • Extension : .*
  • Opération : Compare
  • Commande : C:\Program Files\Beyond Compare 3\BComp.exe (remplacez par le chemin correct pour votre machine, y compris le numéro de version)
  • Arguments : %1 %2 /title1=%6 /title2=%7

Si vous utilisez Beyond Compare Professional (Fusion à 3 voies):

  • Extension : .*
  • Opération : Merge
  • Commande : C:\Program Files\Beyond Compare 3\BComp.exe (remplacez par le chemin correct pour votre machine, y compris le numéro de version)
  • Arguments : %1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

Si vous utilisez Beyond Compare v3/v4 Standard ou Beyond Compare v2 (Fusion bidirectionnelle):

  • Extension : .*
  • Opération : Merge
  • Commande : C:\Program Files\Beyond Compare 3\BComp.exe (remplacez par le chemin correct pour votre machine, y compris le numéro de version)
  • Arguments : %1 %2 /savetarget=%4 /title1=%6 /title2=%7

Si vous utilisez des onglets dans Beyond Compare

Si vous exécutez Beyond Compare en mode onglet, il peut y avoir confusion lorsque vous différez ou fusionnez plusieurs ensembles de fichiers à la fois à partir de Visual Studio. Pour résoudre ce problème, vous pouvez ajouter l'argument /solo à la fin des arguments; Cela garantit que chaque comparaison s'ouvre dans une nouvelle fenêtre, en contournant le problème avec des onglets.

542
schellack

Visual Studio avec Git pour Windows

Si vous utilisez GIT en tant que votre système de gestion de code source au lieu de (assez daté) TFVC , alors Visual Studio ne t ont des options pour configurer quelque chose comme ça.
Au lieu de cela (à mon avis, à juste titre) utilise le paramètre paramètre du fichier de configuration GIT . Donc, si vous avez déjà configuré GIT pour utiliser Beyond Compare ou tout autre logiciel de comparaison tiers, il ne vous reste plus qu'à le prendre et commencer à l'utiliser.

Sinon, configurez simplement cela (voir ici pour une aide supplémentaire et probablement plus à jour). Les informations pertinentes pour la configuration de Visual Studio avec Beyond Compare 4 sont les suivantes:

  1. Ouvrez Visual Studio.
  2. Sélectionnez Options dans le menu Outils.
  3. Sélectionnez Paramètres du plug-in dans la branche Contrôle de source du contrôle d'arborescence de gauche.
  4. Sélectionnez Fournisseur Microsoft Git sous Paramètres du plug-in dans le volet de droite.
  5. Editez le fichier de configuration global git (l'emplacement est spécifique à Windows sous %HOMEDRIVE%%HOMEPATH%/.gitconfig. Voir ici pour plus d'informations) OR si vous voulez que ce soit spécifique au repo, puis après le démarrage un projet dans un référentiel Git, éditez le fichier de configuration dans le dossier .git du dossier du projet.
  6. Modifiez le fichier de configuration pour refléter les modifications suivantes:

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

Si le programme d'installation 64 bits est utilisé, vérifiez le nom de l'exécutable. Le mien était 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\"

Problèmes: Si vous créez un nouveau projet et demandez à VS de créer le rapport git en même temps, il SERA ajoute une charge de remplacements au fichier .git/config le forçant à utiliser Visual Studio à nouveau (Merci pour cette MS!). SO soit créer le repo git via un autre moyen une fois le projet configuré (comme via SourceTree ou la ligne de commande, etc ...) OR éditez le fichier .git/config ( dans le dossier de la solution) et supprimez tout remplacement pour les paramètres ci-dessus.
Merci à Minnow dans les commentaires d’avoir attiré à nouveau mon attention dessus.

Remarque: Je n'arrête pas de constater cela, mais j'utilise VS avec GIT et les réponses ne sont pas correctes et, même si certains commentaires mentionnent une URL avec le bonne réponse ce n'est pas clair et si je continuais à le manquer, je suis sûr que d'autres le feront si bien, espérons que cela résoudra le problème.

71
GazB

Si vous utilisez TFS, vous trouverez plus d'informations dans configuration diff/merge dans Team Foundation - valeurs communes de commande et d'argument

Il montre comment configurer les outils suivants:

  • WinDiff
  • DiffDoc (pour les fichiers Word)
  • WinMerge
  • Incomparable
  • KDiff3
  • Araxis
  • Comparez-le!
  • Diffusion de SourceGear
  • Au-delà de comparer 3
  • TortoiseMerge
  • Visual SlickEdit
15
fresky

Je me suis ennuyé de le faire tous les 6 mois lorsqu'une nouvelle version de Visual Studio est disponible, que je déplace des PC ou qu'un nouveau membre se joigne à l'équipe. Alors, 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'}
}

Fonctionne sur ma machine. YMMV. Aucune garantie, aucun remboursement. VS ne semble pas mettre en cache la clé, prend donc effet immédiatement.

13
piers7

Dans Visual Studio 2008 +, accédez à la

Tools menu -->  select Options 

enter image description here

Dans la fenêtre Options -> développez Contrôle source -> Sélectionnez Outils utilisateur Subversion -> Sélectionnez au-delà de la comparaison.

et cliquez sur le bouton OK ..

8
BJ Patel

VS2013 sur Windows 7 64 bits requiert les paramètres suivants: Outils | Options | Contrôle de la source | Contrôle de source jazz

CHECK THE CHECKBOX Utilisez un outil de comparaison externe ... (facile à manquer)

Comparaison bidirectionnelle de l'emplacement de l'exécutable: C:\Program Files (x86)\Beyond Compare 3\BCompare.exe

Conflit à trois voies Comparez l'emplacement de l'exécutable: C:\Program Files (x86)\Beyond Compare 3\BCompare.exe

2
Arvind

La réponse publiée par @schellack convient parfaitement à la plupart des scénarios, mais je souhaitais que Beyond Compare simule la vue "Fusion à 2 voies avec un panneau de résultats" utilisée par Visual Studio dans sa propre fenêtre de fusion.

Cette configuration masque le panneau central (qui n'est pas utilisé dans la plupart des cas, autant que je sache).

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

Merci à Morgen

2
Ted

BComp.exe fonctionne également dans un scénario à plusieurs onglets. Il n'est donc pas nécessaire d'ajouter/solo à moins que vous ne vouliez vraiment des fenêtres séparées pour chaque comparaison de fichier. Testé/vérifié sur Beyond Compare 3 and 4. Moral: utilisez BComp.exe et non BCompare.exe pour la configuration de l'outil de comparaison externe VS.

2
Arvind

J'utilise VS 2017 avec des projets hébergés avec Git sur l'hébergement visualstudio.com (msdn)

Le lien ci-dessus a fonctionné pour moi avec les instructions "GITHUB FOR WINDOWS".

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

Le fichier de configuration était situé à l'emplacement indiqué "c:\users\username.gitconfig" et je viens de remplacer les BC4 par BC3 pour ma situation et d'utiliser le chemin approprié:

C:/Fichiers de programme (x86)/Beyond Compare 3/bcomp.exe

1
chuckc

J'utilise BC3 pour mon git diff, mais je voudrais aussi ajouter vscode à la liste des outils utiles de git diff . Certains utilisateurs préfèrent l'expérience vscode à vs ide .

Utiliser VS Code pour Git Diff

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