Ich laufe OS X.10
und Xcode 7
.SourceTree 2
Wenn ich eine Datei mit Konflikt auswähle und Launch an external merge tool
, erscheint ganz kurz ein Fenster ... und dann passiert nichts .
Ich habe es versucht (siehe diese Hilfeseite ), sudo ln -s /Developer/usr/bin/opendiff /usr/bin/opendiff
aber es hat nicht funktioniert (ich habe die Meldung erhalten ln: /usr/bin/opendiff: File exists
).
Was soll ich machen?
Hier ist ein Bild des Fensters, das kurz erscheint.
Hier sind die SourceTree-Einstellungen:
Mein Problem war, dass ich eine frühere Version von Xcode ausführte und die Befehlszeilentools nicht eingestellt hatte.
Wählen Sie die Tools in den Einstellungen von Xcode -> Speicherorte:
Führen Sie dann diesen Befehl im Terminal aus, um dies zu überprüfen:
git config --global -l
Der Befehl git druckt neben anderen Konfigurationsinformationen den Pfad für das Diff-Tool aus. Wenn es nicht konfiguriert ist, wird es einen Fehler mit etwas in der Art des Folgenden ausgeben:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),
Angenommen, Sie verwenden die neueste Version von SourceTree (Version 2.0.5.5 (2.0.5.5))
Versuchen Sie Folgendes manuell zu Ihrer .gitconfig hinzuzufügen (oder überprüfen Sie, ob SourceTree genau diese Zeilen eingefügt hat)
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
Oder Sie könnten einfach "Sourcetree erlauben, Ihre globalen Mercurial- und Git-Konfigurationsdateien zu ändern" aktivieren. in Einstellungen -> Registerkarte Allgemein
Diese Zeilen werden automatisch aktualisiert
mmmmmm
mmmmmm
Cola
mmmmmm
Cola
2015-11-04 17:11:32.360 opendiff[10848:132187] too few arguments 2015-11-04 17:11:32.365 opendiff[10848:132187] usage: opendiff file1 file2 [-ancestor ancestorFile] [-merge mergeFile]