SmartGit und Konvertierung von Zeilenenden

Veröffentlicht von

Automatische Konvertierung von Zeilenenden in SmartGit unterbinden.

Eine Sache, welche mich bei Git in den Standardeinstellungen immer gestört hat, war die automatische Konvertierung der Zeilenenden. CR nach CRLF, CRLF nach LF, je nach Betriebssystem. Der Hintergrund ist mir irgendwie schon einleuchtend. Jeder Jeck ist anders und jeder geißelt sich mit dem Betriebssystem seiner Wahl, welches dann unterschiedliche Zeilenenden mitbringt.

In meiner Praxis war dies bisher kein größeres Problem. IDEs und Editoren kommen mit verschiedenen Zeilenenden ohnehin klar. Und eigentlich ist es mir recht, wenn die Quelltextverwaltung keine eigenmächtigen Änderungen an den Dateien vornimmt.

Stattdessen sorgte die Einstellung immer wieder für Probleme, wenn diese bei einigen Clients deaktiviert ist. Bei solch einem Fall werden dann schnell viele Änderungen erkannt, weil Client A die Zeilenenden konvertiert hat und Client B dann dies als Änderungen auffasst.7

In dem oben gezeigten Beispiel sind nun alle Quelltextdateien geändert, jeweils nur das Zeilenende. Nervig. Zum Glück lässt sich das recht leicht in der “.gitconfig” Datei ändern. Diese wird von SmartGit beachtet. Die Datei liegt im Benutzerverzeichnis.

Hier fügen wir im Abschnitt “[core]” die Einstellung “autocrlf = false” ein.

Idealerweise tuen wir dies bei allen Clients. Bei mir trat das Problem auf, da ich auf meinem Surface und Thinkpad jeweils unterschiedliche Einstellungen vorliegen.

Dies funktioniert natürlich praktischerweise ganz gut, wenn man alleine am Projekt arbeitet. Die Alternative auf Projektebene ist die Datei “.gitattributes”. In dieser können wir die Einstellung ebenfalls festlegen, sogar mit Angabe von Dateitypen.

*               text=false
# These files are text and should be normalized (Convert crlf => lf)
*.css           text
*.html          text
*.java          text

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert