Git LFS und SmartGit

Git LFS mit SmartGit unter macOS

Unter Windows wird Git LFS mittlerweile zusammen mit Git installiert. Unter macOS ist es leider noch nicht der Fall.

Nach der Installation von Git LFS (Installationsanleitung und Download unter Git LFS Projekt auf GitHub funktioniert es leider nicht unter SmartGit.

Warum funktioniert Git LFS unter macOS nicht mit SmartGit?

Die kurze Antwort lautet, weil in der PATH-Variable von SmartGit der Pfad zu Git LFS (/usr/local/bin) nicht hinterlegt ist. Diese muss in der Date ~/Library/Preferences/SmartGit/smartgit.vmoptions nachgetragen werden.

Ursache

Die Ursache dafür, ist die gesetzte PATH-Variable, die beim Aufruf von Terminal (und damit auch bei Git-Befehlen). Wenn ich auf meinen macOS Rechner den Inhalt von PATH aufrufe, erhalte ich folgendes:

mac:~ eugen$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands

Mache ich dasselbe auch dem Terminal-Fenster, den ich aus SmartGit starte, erhalte ich komplett anderen Inhalt:

mac:git-repo eugen$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin

Standardmäßig wird Git LFS unter macOS in das Verzeichnis /usr/local/bin installiert. Dieser Pfad ist zwar in der PATH-Variable des Benutzers hinterlegt (weshalb Git LFS auf dem normalen Terminal funktioniert), aber nicht in der PATH-Variable, wenn das Terminal aus SmartGit gestartet wird.

Lösung

Nach langer Suche bin ich auf die Confluence-Seite bei Syntevo gestoßen, die die Lösung ganz untern auf der Seite präsentiert (SmartGit VM options).

Damit muss die Datei ~/Library/Preferences/SmartGit/smartgit.vmoptions um den Eintrag path=/usr/local/bin ergänzt werden. Nach den Neustart von SmartGit funktioniert nun auch Git LFS auf dem macOS wie erwartet.

mac:git-project eugen$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin