2014-04-12 4 views
5

Ich habe this post gefunden, die erklärt, wie Sie Visual Studio 2013 das integrierte Diff-Tool verwenden können, wenn Sie Dateien in Git vergleichen, aber ich habe das umgekehrte Problem. Gerade jetzt, wenn ich mit der rechten Maustaste auf eine Datei im Git Commit Details Fenster und wählen Sie Compare With Previous... VS führt das Diff in der Standard-Visual Studio 2013-Vergleichswerkzeug, aber ich möchte es ein externes Diff-Tool, insbesondere TortoiseMerge.exe verwenden. Ich habe es in meinem C: \ Benutzer \ [Mein Name] \. Gitconfig angegeben und es funktioniert ordnungsgemäß von der GitBash-Konsole, aber Visual Studio ignoriert diese Einstellung und verwendet immer sein integriertes Tool.Wie verwendet man ein externes Diff-Tool für Git in Visual Studio 2013?

Dies ist, was ich in diesem .gitconfig haben:

[merge] 
    tool = kdiff3 
[mergetool "kdiff3"] 
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe 
[diff] 
    guitool = TortoiseMerge 
[difftool "TortoiseMerge"] 
    path = C:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe 

Ich habe meine lokalen Repository .gitconfig überprüft, um auch sicher, dass es diese Einstellung nicht überschrieben wurde, und es nicht eine beliebige diff oder difftool die Einstellungen.

[diff] 
    guitool = TortoiseMerge 
[difftool "TortoiseMerge"] 
    cmd = \"C:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe\" /base:"$REMOTE" /local:"$MINE" 

aber das Verhalten ändert sich nicht:

Ich habe auch ähnliche Einstellungen in meinem .gitconfig wie versucht.

+0

Ich denke, das im Dateipfad zu dem Raum aufgrund geschieht. würde vorschlagen, 'kdiff' und' TortoiseMerge' in ein neues Verzeichnis zu installieren, so dass keine Leerzeichen im Dateipfad vorhanden sind. anstelle des 'Programme'-Ordners. –

+0

@mu ※ versucht, TortoiseMerge zu einem Ordnerpfad ohne Leerzeichen zu installieren, aber immer noch das gleiche Problem :( – deadlydog

Antwort

6

Visual Studio verwendet die Konfigurationseinstellung diff.tool, nicht die Konfigurationseinstellung diff.guitool.

Versuchen:

[diff] 
    tool = TortoiseMerge 
0

ich das gleiche Problem vor kurzem in Visual Studio 2012 hatte ich die Lösung hier posten, da dies der erste Thread fand ich bei der Suche.

Meine .gitconfig Datei sah wie folgt aus:

[merge] 
    tool = kdiff3 
[diff] 
    tool = kdiff3 
[difftool] 
    prompt = true 

[difftool "kdiff3"] 
    path = "C:/Program Files/KDiff3/kdiff3.exe" 
    keepBackup = false 
    trustExitCode = true 
[mergetool] 
    prompt = true 

[mergetool "kdiff3"] 
    cmd = "C:/Program Files/KDiff3/kdiff3.exe" $BASE $LOCAL $REMOTE -o $MERGED 
    keepBackup = false 
    trustExitCode = true 

[mergetool "vsdiffmerge"] 
    cmd = "C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsdiffmerge.exe" /m $REMOTE $LOCAL $BASE $MERGED 
    keepbackup = false 
    trustexistcode = true 

Das Problem war die Zeilenumbrüche zwischen Config-Abschnitte.

die Datei auf diese Änderung korrekt funktionierte:

[merge] 
    tool = kdiff3 
[diff] 
    tool = kdiff3 
[difftool] 
    prompt = true 
[difftool "kdiff3"] 
    path = "C:/Program Files/KDiff3/kdiff3.exe" 
    keepBackup = false 
    trustExitCode = true 
[mergetool] 
    prompt = true 
[mergetool "kdiff3"] 
    cmd = "C:/Program Files/KDiff3/kdiff3.exe" $BASE $LOCAL $REMOTE -o $MERGED 
    keepBackup = false 
    trustExitCode = true 
[mergetool "vsdiffmerge"] 
    cmd = "C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/vsdiffmerge.exe" /m $REMOTE $LOCAL $BASE $MERGED 
    keepbackup = false 
    trustexistcode = true 
Verwandte Themen