406 votes

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 cela?

23 votes

602voto

schellack Points 5378

Dans Visual Studio, allez dans le menu Outils, sélectionnez Options, développez Source Control, (dans un environnement TFS, cliquez sur Visual Studio Team Foundation Server), et cliquez sur le bouton Configurer les outils utilisateur.

image montrant l'emplacement du bouton Configurer les outils utilisateur

Cliquez sur le bouton Ajouter.

Entrez/sélectionnez les options suivantes pour la Comparaison :

  • Extension : .*
  • Opération : Comparer
  • 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 : Fusionner
  • 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 à 2 voies) :

  • Extension : .*
  • Opération : Fusionner
  • 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, cela peut poser problème lorsque vous comparez ou fusionnez plus d'un ensemble de fichiers à la fois depuis 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, contournant ainsi le problème des onglets.

21 votes

Notez que pour Beyond Compare 3, vous devriez en fait utiliser BComp.exe - voir scootersoftware.com/vbulletin/showthread.php?t=3461

3 votes

Merci pour cette information et ce lien - j'ai mis à jour ma réponse avec le meilleur nom exécutable.

0 votes

Pouvez-vous ajouter une capture d'écran montrant ce bouton Configure User Tools? Visual Studio 2010 n'en a pas.

120voto

GazB Points 889

Visual Studio avec Git pour Windows

Si vous utilisez GIT comme votre système de gestion de code source au lieu du (assez obsolète) TFVC, Visual Studio n'a pas d'options pour configurer quoi que ce soit à ce sujet.
Au lieu de cela, il utilise à juste titre à mon avis les paramètres du fichier de configuration GIT config. Donc, si vous avez déjà configuré GIT pour utiliser Beyond Compare ou tout autre logiciel de comparaison tiers, il le détectera simplement et commencera à l'utiliser.

Sinon, il vous suffit de le configurer (voir ici pour de l'aide supplémentaire et probablement plus à jour). Les informations pertinentes pour configurer 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 de plug-in sous la branche Contrôle de source de l'arborescence à gauche.
  4. Sélectionnez Fournisseur Git Microsoft sous Paramètres de plug-in dans le volet de droite.
  5. Modifiez le fichier de configuration git global (l'emplacement est spécifique à l'OS, pour Windows, c'est %HOMEDRIVE%%HOMEPATH%/.gitconfig. Voir ici pour plus d'informations) OU si vous voulez qu'il soit spécifique au dépôt, après avoir démarré un projet dans un dépôt Git, modifiez le fichier de configuration dans le dossier .git du dossier du projet.
  6. Modifiez le fichier de configuration comme suit :

    [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 vous utilisez l'installateur 64 bits, 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 dépôt git en même temps, il ajoutera une tonne de remplacements au fichier .git/config le forçant à utiliser à nouveau Visual Studio (Merci pour ça MS !). DONC, créez le dépôt git via un autre moyen après que le projet a été configuré (comme via Sourcetree ou la ligne de commande, etc.) OU modifiez le fichier .git/config (dans le dossier de solution) et supprimez tout remplacement pour les paramètres ci-dessus.
Merci à minnow dans les commentaires pour avoir attiré mon attention à ce sujet de nouveau.

Remarque : Je tombe souvent sur cela, mais j'utilise VS avec GIT et les réponses ne sont pas correctes et bien que certains commentaires mentionnent une URL avec la bonne réponse, ce n'est pas clair et si je l'ai manqué, d'autres aussi le feront donc espérons que cela résoudra ce problème.

1 votes

Très utile, car j'utilise Git pour Windows.

2 votes

Attention cependant - VS 2015, pour moi, s'est configuré comme l'outil de différenciation/fusion dans le fichier de configuration git local du dépôt local....remplaçant ainsi le global. Il suffit de supprimer les entrées dans la configuration du dépôt local et vous devriez être bon.

0 votes

@Jester Je ne suis pas sûr si c'est un paramètre (bien que je n'ai aucune idée où il serait car GIT ne semble pas avoir de paramètres dans VS2015!) comme j'ai simplement créé une application console C# vide en utilisant GIT et ai effectué un premier check-in en utilisant VS2015 et les seuls fichiers qu'il a créés étaient .gitattributes et .gitignore. Pouvez-vous le reproduire avec un nouveau projet et si oui de quel type de projet s'agit-il ? Serait intéressant de voir pourquoi nous obtenons des résultats différents. Oh et si vous pouvez le reproduire, quels extensions VS avez-vous ? Peut-être sont-elles la cause. :)

18voto

fresky Points 165

Si vous utilisez le TFS, vous pouvez trouver plus d'informations dans la configuration de diff/fusion dans Team Foundation - valeurs communes de commandes et d'arguments

Cela montre comment configurer les outils suivants :

  • WinDiff
  • DiffDoc (pour les fichiers Word)
  • WinMerge
  • Beyond Compare
  • KDiff3
  • Araxis
  • Compare It!
  • SourceGear DiffMerge
  • Beyond Compare 3
  • TortoiseMerge
  • Visual SlickEdit

0 votes

Non, vous ne pouvez pas car MicroShit ne sait toujours pas comment faire des redirections au 21e siècle.

16voto

piers7 Points 1567

Je me suis lassé de faire cela tous les 6 mois lorsqu'une nouvelle version de Visual Studio sort, ou lorsque je change d'ordinateurs, ou lorsqu'un nouveau membre rejoint l'équipe. Alors, PowerShell :

# .Synopsys
# Configure Beyond Compare Professional comme outil de différenciation pour toutes les instances de Visual Studio sur cet ordinateur
# Si vous n'utilisez pas TFS, changez le sccProvider si nécessaire
[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 "Création de $keyPath"
        # Force requis ici pour créer récursivement le chemin du registre
        [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 "Configuration de $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 mon ordinateur. Votre kilométrage peut varier. Aucune garantie, aucun remboursement. VS ne semble pas mettre en cache la clé, donc l'effet est immédiat.

1 votes

Ces jours-ci, son $bcPath = 'C:\Program Files (x86)\Beyond Compare 4\BCompare.exe' pour la dernière version. Donc si seulement cela était combiné avec l'installation de chocolatey... (merci d'ailleurs)

0 votes

C'est génial. Merci beaucoup d'avoir posté ces informations, cela rendra la vie plus facile !

1 votes

Il faudrait probablement simplement mettre à jour pour lire l'entrée du Registre : ordinateur\hkey_local_machine\scooter software\beyond compare\exepath.

9voto

B JP Points 832

Dans Visual Studio 2008 +, allez dans le

menu Outils --> sélectionnez Options 

entrer la description de l'image ici

Dans la fenêtre Options --> développez le Contrôle de Source --> Sélectionnez Outils Utilisateur Subversion --> Sélectionnez Beyond Compare

et cliquez sur le bouton OK..

2 votes

Notez que les parties « subversion » de cette réponse sont spécifiques si vous utilisez SVN comme fournisseur de contrôle de source.

1 votes

Uniquement SVN, ne s'applique pas à TFS ou Git ou à tout autre fournisseur de contrôle de code source

0 votes

Probablement utile aux adeptes de SVN, n'est-ce pas? Cela peut languir ici avec quelques votes, semble bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X