Comment configurer Visual Studio pour utiliser Beyond Compare

Réponses:

561

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

image pour montrer l'emplacement du bouton Configurer les outils utilisateur

Cliquez sur le bouton Ajouter .

Entrez / sélectionnez les options suivantes pour comparer:

  • Extension :.*
  • Fonctionnement :Compare
  • Commande : C:\Program Files\Beyond Compare 3\BComp.exe(remplacez par le chemin approprié 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 :.*
  • Fonctionnement :Merge
  • Commande : C:\Program Files\Beyond Compare 3\BComp.exe(remplacez par le chemin approprié 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 :.*
  • Fonctionnement :Merge
  • Commande : C:\Program Files\Beyond Compare 3\BComp.exe(remplacez par le chemin approprié 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 devenir confus 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 les onglets.

schellack
la source
17
Notez que pour Beyond Compare 3, vous devez réellement utiliser BComp.exe - voir scootersoftware.com/vbulletin/showthread.php?t=3461
Joe
5
J'ai mis à jour cette réponse pour prendre en charge Beyond Compare v3 Pro / Std et Beyond Compare v2 (v3 propose une fusion à 3 voies) et des arguments mis à jour depuis le site officiel de la Colombie-Britannique: scootersoftware.com/support.php?zz=kb_vcs
Evan Wondrasek
32
Si vous exécutez Beyond Compare en mode onglet, cela peut devenir confus 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 les onglets.
Josh Sklare
16
Lorsque vous utilisez le complément Git pour Visual Studio, il n'y a pas de bouton Configurer les outils utilisateur. Quelqu'un sait-il comment accrocher le complément Git pour l'utiliser au-delà de la comparaison?
Stephen Price
7
La configuration de Beyond Compare 4 est la même que Visual Studio 2013. Pour prendre en charge la version 4, changez simplement le "3" du chemin de commande en "4". C'est assez évident, mais il faut le noter. Par exemple, sur mon poste de travail, le chemin d'accès est: C: \ Program Files (x86) \ Beyond Compare 4 \ BCompare.exe
Mike Christian
86

Visual Studio avec Git pour Windows

Si vous utilisez GIT comme système de gestion de code source au lieu du TFVC (assez daté), Visual Studio n'a pas d'options pour configurer quelque chose comme ça.
Au lieu de cela, il (à juste titre à mon avis) utilise le paramètre du fichier de configuration GIT . Donc, si vous avez déjà une configuration GIT pour utiliser Beyond Compare ou tout autre logiciel de comparaison tiers, il suffit de le récupérer et de commencer à l'utiliser.

Si ce n'est pas le cas, configurez-le simplement (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 Plug-In Settings sous la branche Source Control de l'arborescence de gauche.
  4. Sélectionnez Microsoft Git Provider sous Plug-In Settings dans le volet droit.
  5. Modifiez le fichier de configuration git global (emplacement est OS spécifique pour Windows c'est %HOMEDRIVE%%HOMEPATH%/.gitconfig. Voir ici pour plus d' informations) ou si vous voulez qu'il soit specifict repo puis après le démarrage d' un projet dans un dépôt Git, modifier le fichier de configuration dans le dossier .git dans le dossier de 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 obtenez VS pour créer le git en même temps , il FERA ajouter une charge de substitutions au .git/configfichier forçant à utiliser à nouveau Visual Studio (Merci pour cette MS!). SO soit créer 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 éditez le .git/configfichier (dans le dossier de la solution) et supprimez tous les remplacements pour les paramètres ci-dessus.
Merci à Minnow dans les commentaires d'avoir à nouveau attiré mon attention.

Remarque: je continue de rencontrer ce problème, 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 la manquais, je suis sûr que d'autres le feront nous espérons que cela résoudra ce problème.

GazB
la source
Très utile, car j'utilise Git pour Windows.
MrBoJangles
2
Attention cependant - VS 2015, pour moi, s'est installé comme outil de diff / fusion dans le fichier de configuration git local dans le référentiel local .... remplaçant ainsi le global. Supprimez simplement les entrées dans la configuration du dépôt local et vous devriez être bon.
Jester
3
Haha a juste essayé de voter pour cette réponse ÉTONNANTE ... puis il a dit "Vous ne pouvez pas voter sur votre propre réponse" ... OH LOL Dieu bénisse de ne pas avoir de mémoire! ;)
GazB
4
BC4 installé dans un chemin légèrement différent, le 64b dir, sur ma machine:\"C:\\Program Files\\Beyond Compare 4\\BComp.exe\"
GraehamF
1
J'ai trouvé que la configuration de la configuration globale de git ne fonctionnait pas du tout. J'ai dû modifier la config du repo. VS2017. Quelqu'un d'autre éprouve la même chose? Et @GazB, je soupçonne GraehamF, comme moi, que la version 64 bits de BC est installée sur des fenêtres 64 bits, donc le chemin installé est le fichier programme correct et attendu et non PF (x86).
Minnow
13

Je me suis ennuyé de le faire tous les 6 mois lorsqu'une nouvelle version de Visual Studio sort, ou que je déplace des PC, ou qu'un nouveau membre rejoint l'équipe. Donc, 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é, il prend donc effet immédiatement.

piers7
la source
1
De nos jours, 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 chocolatée ... (merci en passant)
James Woolfenden
C'est bien. Merci beaucoup d'avoir publié ces informations, cela vous facilitera la vie!
d3r3kk
1
Probablement devrait simplement mettre à jour pour lire l'entrée du Registre: computer\hkey_local_machine\scooter software\beyond compare\exepath.
Erik Philips
8

Dans Visual Studio 2008 +, accédez au

Tools menu -->  select Options 

entrez la description de l'image ici

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

et cliquez sur le bouton OK.

BJ Patel
la source
2
Notez que les bits de «subversion» de cette réponse sont spécifiques à si vous utilisez SVN comme fournisseur de contrôle de source.
piers7
1
SVN uniquement, ne s'applique pas à TFS ou Git ou à tout autre fournisseur SCC
Adam Plocher
3

La réponse publiée par @schellack est parfaite pour la plupart des scénarios, mais je voulais que Beyond Compare simule la vue `` Fusion bidirectionnelle avec un panneau de résultats '' que Visual Studio utilise dans sa propre fenêtre de fusion.

Cette configuration masque le panneau du milieu (qui n'est pas utilisé dans la plupart des cas AFAIK).

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

Merci à Morgen

Ted
la source
2

VS2013 sur Windows 7 64 bits nécessite ces paramètres: Outils | Options | Contrôle de source | Contrôle de source Jazz

VÉRIFIEZ LA CHECKBOX Utilisez un outil de comparaison externe ... (facile à manquer)

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

Comparaison de conflits à 3 voies Emplacement de l'exécutable: C: \ Program Files (x86) \ Beyond Compare 3 \ BCompare.exe

Arvind
la source
2

BComp.exe fonctionne également dans les scénarios à onglets multiples, il n'est donc pas nécessaire d'ajouter / solo, sauf si vous voulez vraiment des fenêtres distinctes pour chaque comparaison de fichiers. Testé / vérifié sur Beyond Compare 3 et 4. Moral: utilisez BComp.exe, et non BCompare.exe, pour la configuration de l'outil de comparaison externe VS.

Arvind
la source
2

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 POUR WINDOWS".

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

Le fichier de configuration se trouvait là où il était indiqué dans "c: \ users \ username \ .gitconfig" et je viens de changer les BC4 en BC3 pour ma situation et j'ai utilisé le chemin approprié:

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

chuckc
la source
1

J'utilise BC3 pour mon git diff, mais j'ajouterais également vscode à la liste des outils git diff utiles . Certains utilisateurs préfèrent vscode à vs ide expérience .

Utiliser VS Code pour Git Diff

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