So konfigurieren Sie Visual Studio für die Verwendung von Beyond Compare

Antworten:

561

In Visual Studio finden Sie auf der Extras - Menü wählen Sie Optionen , erweitern Sie Quellcodeverwaltung , (in einer TFS - Umgebung finden Sie Visual Studio Team Foundation Server), und klicken Sie auf den Benutzer - Tools konfigurieren Schaltfläche.

Bild, um die Position der Schaltfläche Configure User Tools anzuzeigen

Klicken Sie auf die Schaltfläche Hinzufügen .

Geben Sie die folgenden Optionen für Vergleichen ein / wählen Sie sie aus:

  • Erweiterung :.*
  • Bedienung :Compare
  • Befehl : C:\Program Files\Beyond Compare 3\BComp.exe(durch den richtigen Pfad für Ihren Computer ersetzen, einschließlich Versionsnummer)
  • Argumente :%1 %2 /title1=%6 /title2=%7

Bei Verwendung von Beyond Compare Professional (3-Wege-Zusammenführung):

  • Erweiterung :.*
  • Bedienung :Merge
  • Befehl : C:\Program Files\Beyond Compare 3\BComp.exe(durch den richtigen Pfad für Ihren Computer ersetzen, einschließlich Versionsnummer)
  • Argumente :%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9

Bei Verwendung von Beyond Compare v3 / v4 Standard oder Beyond Compare v2 (2-Wege-Zusammenführung):

  • Erweiterung :.*
  • Bedienung :Merge
  • Befehl : C:\Program Files\Beyond Compare 3\BComp.exe(durch den richtigen Pfad für Ihren Computer ersetzen, einschließlich Versionsnummer)
  • Argumente :%1 %2 /savetarget=%4 /title1=%6 /title2=%7

Wenn Sie in Beyond Compare Registerkarten verwenden

Wenn Sie Beyond Compare im Registerkartenmodus ausführen, kann dies zu Verwirrung führen, wenn Sie in Visual Studio mehrere Dateien gleichzeitig unterscheiden oder zusammenführen. Um dies zu beheben, können Sie das Argument /soloam Ende der Argumente hinzufügen . Dadurch wird sichergestellt, dass jeder Vergleich in einem neuen Fenster geöffnet wird und das Problem mit Registerkarten umgangen wird.

schellack
quelle
17
Beachten Sie, dass für Beyond 3 vergleichen, sollten Sie tatsächlich BComp.exe werden - siehe scootersoftware.com/vbulletin/showthread.php?t=3461
Joe
5
Ich diese Antwort aktualisiert beide Darüber hinaus unterstützen Vergleichen v3 Pro / Std und Beyond Compare v2 (v3 bietet eine 3-Wege - Merge) und aktualisiert Argumente aus offiziellen BC Webseite: scootersoftware.com/support.php?zz=kb_vcs
Evan Wondrasek
32
Wenn Sie Beyond Compare im Registerkartenmodus ausführen, kann dies zu Verwirrung führen, wenn Sie mehrere Dateien gleichzeitig in Visual Studio unterscheiden oder zusammenführen. Um dies zu beheben, können Sie das Argument "/ solo" am Ende der Argumente hinzufügen. Dadurch wird sichergestellt, dass jeder Vergleich in einem neuen Fenster geöffnet wird und das Problem mit Registerkarten umgangen wird.
Josh Sklare
16
Bei Verwendung des Git-Add-Ins für Visual Studio gibt es keine Schaltfläche "Benutzertools konfigurieren". Kennt jemand eine Möglichkeit, das Git-Add-In für eine unvergleichliche Verwendung zu verwenden?
Stephen Price
7
Das Setup von Beyond Compare 4 ist dasselbe wie das von Visual Studio 2013. Um Version 4 zu unterstützen, ändern Sie einfach die "3" im COMMAND-Pfad in eine "4". Es ist ziemlich offensichtlich, sollte aber beachtet werden. Auf meiner Workstation lautet der Pfad beispielsweise: C: \ Programme (x86) \ Beyond Compare 4 \ BCompare.exe
Mike Christian
86

Visual Studio mit Git für Windows

Wenn Sie GIT als Quellcodeverwaltungssystem anstelle des (ziemlich veralteten) TFVC verwenden, verfügt Visual Studio nicht über Optionen zum Konfigurieren solcher Elemente .
Stattdessen verwendet es (meiner Meinung nach zu Recht) die Einstellung der GIT-Konfigurationsdatei . Wenn Sie also bereits ein GIT-Setup für die Verwendung von Beyond Compare oder einer anderen Vergleichssoftware von Drittanbietern haben, wird es dies einfach aufgreifen und verwenden.

Wenn nicht, richten Sie das einfach ein (siehe hier für weitere und wahrscheinlich aktuellere Hilfe). Die relevanten Informationen zum Einrichten von Visual Studio mit Beyond Compare 4 lauten:

  1. Öffnen Sie Visual Studio.
  2. Wählen Sie im Menü Extras die Option Optionen.
  3. Wählen Sie im Zweig "Quellcodeverwaltung" des linken Baumsteuerelements die Option "Plug-In-Einstellungen" aus.
  4. Wählen Sie im rechten Bereich unter Plug-In-Einstellungen die Option Microsoft Git Provider aus.
  5. Bearbeiten Sie die globale Git-Konfigurationsdatei (der Speicherort ist betriebssystemspezifisch für Windows) %HOMEDRIVE%%HOMEPATH%/.gitconfig. Weitere Informationen finden Sie hier. Wenn Sie möchten, dass sie repospezifisch ist, bearbeiten Sie die Konfigurationsdatei nach dem Starten eines Projekts in einem Git-Repository im Ordner .git im .git Projektordner.
  6. Ändern Sie die Konfigurationsdatei, um die folgenden Änderungen widerzuspiegeln:

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

Wenn das 64-Bit-Installationsprogramm verwendet wird, überprüfen Sie den Namen der ausführbaren Datei. Meins war 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\"

Probleme: Wenn Sie ein neues Projekt anlegen und erhalten VS die git Repo zur gleichen Zeit zu schaffen , es WILL eine Last von Überschreibungen auf die Add - .git/configDatei zwingt sie Visual Studio erneut zu verwenden (Vielen Dank für das MS!). Erstellen Sie das Git-Repo entweder auf andere Weise, nachdem das Projekt eingerichtet wurde (z. B. über SourceTree oder die Befehlszeile usw.), oder bearbeiten Sie die .git/configDatei (im Lösungsordner) und entfernen Sie alle Überschreibungen für die obigen Einstellungen.
Vielen Dank an Minnow in den Kommentaren, die mich wieder darauf aufmerksam gemacht haben.

Hinweis: Ich stoße immer wieder darauf, aber ich verwende VS mit GIT und die Antworten sind nicht korrekt. Obwohl in einigen Kommentaren eine URL mit der richtigen Antwort erwähnt wird, ist dies nicht klar. Wenn ich sie immer wieder vermisse, bin ich sicher, dass andere dies tun werden hoffentlich wird dies das Problem lösen.

GazB
quelle
Sehr hilfreich, da ich Git für Windows verwende.
MrBoJangles
2
Vorsicht - VS 2015 hat sich für mich als Diff / Merge-Tool in der lokalen Git-Konfigurationsdatei im lokalen Repo eingerichtet ... und damit das globale überschrieben. Entfernen Sie einfach die Einträge in der lokalen Repo-Konfiguration und Sie sollten gut sein.
Jester
3
Haha hat gerade versucht, diese ERSTAUNLICHE Antwort abzustimmen ... dann stand dort "Du kannst nicht über deine eigene Antwort abstimmen" ... OH LOL Gott segne dich, kein Gedächtnis zu haben! ;)
GazB
4
BC4 installiert in einem etwas anderen Pfad, dem 64b- \"C:\\Program Files\\Beyond Compare 4\\BComp.exe\"
Verzeichnis
1
Ich fand, dass das Festlegen der globalen Git-Konfiguration überhaupt nicht funktionierte. Ich musste die Konfiguration des Repos ändern. VS2017. Hat noch jemand dasselbe erlebt? Und @GazB, ich vermute, GraehamF hat wie ich nur die 64-Bit-Version von BC in 64-Bit-Fenstern installiert, sodass der installierte Pfad die richtigen, erwarteten Programmdateien und nicht PF (x86) ist.
Elritze
13

Es hat mich gelangweilt, dies alle 6 Monate zu tun, wenn eine neue Version von Visual Studio herauskommt, ich PCs bewege oder ein neues Mitglied dem Team beitritt. Also, 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'}
}

Funktioniert auf meiner Maschine. YMMV. Keine Garantien, keine Rückerstattung. VS scheint den Schlüssel nicht zwischenzuspeichern, wird also sofort wirksam.

piers7
quelle
1
Heutzutage ist $ bcPath = 'C: \ Programme (x86) \ Beyond Compare 4 \ BCompare.exe' für die neueste Version. Also, wenn nur das mit der schokoladigen Installation kombiniert wurde ... (übrigens danke)
James Woolfenden
Das ist toll. Vielen Dank für die Veröffentlichung dieser Informationen, wird das Leben leichter machen!
d3r3kk
1
Wahrscheinlich sollte nur aktualisiert werden, um den Registrierungseintrag zu lesen : computer\hkey_local_machine\scooter software\beyond compare\exepath.
Erik Philips
8

Wechseln Sie in Visual Studio 2008 + zu

Tools menu -->  select Options 

Geben Sie hier die Bildbeschreibung ein

Im Optionsfenster -> Quellcodeverwaltung erweitern -> Subversion-Anwenderprogramme auswählen -> Über Vergleichen hinaus auswählen

und klicken Sie auf OK.

BJ Patel
quelle
2
Beachten Sie, dass die 'Subversion'-Bits dieser Antwort spezifisch sind, wenn Sie SVN als Ihren Versionsverwaltungsanbieter verwenden.
Piers7
1
Nur SVN, gilt nicht für TFS oder Git oder einen anderen SCC-Anbieter
Adam Plocher
3

Die von @schellack veröffentlichte Antwort ist für die meisten Szenarien perfekt, aber ich wollte, dass Beyond Compare die Ansicht "2-Wege-Zusammenführung mit einem Ergebnisfenster" simuliert, die Visual Studio in einem eigenen Zusammenführungsfenster verwendet.

Diese Konfiguration verbirgt das mittlere Bedienfeld (das in den meisten Fällen nicht von AFAIK verwendet wird).

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

Mit Dank an Morgen

Ted
quelle
2

Für VS2013 unter 64-Bit-Windows 7 sind folgende Einstellungen erforderlich: Extras | Optionen | Quellcodeverwaltung | Jazz Source Control

CHECKBOX PRÜFEN Verwenden Sie ein externes Vergleichstool ... (leicht zu übersehen)

2-Wege-Vergleichsspeicherort der ausführbaren Datei: C: \ Programme (x86) \ Beyond Compare 3 \ BCompare.exe

3-Wege-Konfliktvergleich Speicherort der ausführbaren Datei: C: \ Programme (x86) \ Beyond Compare 3 \ BCompare.exe

Arvind
quelle
2

BComp.exe funktioniert auch in Szenarien mit mehreren Registerkarten, sodass / solo nicht hinzugefügt werden muss, es sei denn, Sie möchten wirklich separate Fenster für jeden Dateivergleich. Getestet / verifiziert auf Beyond Compare 3 und 4. Moral: Verwenden Sie BComp.exe, nicht BCompare.exe, für die Konfiguration des externen VS-Vergleichstools.

Arvind
quelle
2

Ich verwende VS 2017 mit Projekten, die mit Git auf visualstudio.com gehostet werden. Hosting (msdn)

Der obige Link funktionierte für mich mit den Anweisungen "GITHUB FOR WINDOWS".

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

Die Konfigurationsdatei befand sich dort, wo sie unter "c: \ users \ username \ .gitconfig" angegeben war, und ich habe gerade die BC4s für meine Situation in BC3s geändert und den entsprechenden Pfad verwendet:

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

chuckc
quelle
1

Ich verwende BC3 für mein Git Diff, aber ich würde auch vscode zur Liste der nützlichen Git Diff-Tools hinzufügen . Einige Nutzer bevorzugen vscode über vs ide Erfahrung.

Verwenden von VS Code für Git Diff

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