GIT kann ja beim Commit und Checkout die Zeilenumbrüche anpassen.
Gibt es sowas auch für UTF-8-BOMs, also dass man die beim Commit automatisch entfernen lassen kann? (vielleicht auch wieder rein, beim Checkout im Windows)
Grund:
Viele Editoren im Windows behandeln Dateien ohne BOM als
ANSI, bzw. einige Erkennen UTF-8 beim öffnen.
Delphi macht das auch, aber speichert
Unicode-Dateien mit BOM ab.
Der Delphi-Editor kann UTF-8 ohne BOM richtig lesen, aber speichert es dann mit BOM
und auch die Dateisuche ist zu doof dafür und öffnet/durchsucht sie als
ANSI, wenn ohne BOM.
Nun hat unser Linuxprofi ein CI gebastelt, was aber bei
SQL-Dateien mit BOM abraucht. (Postgres-Console beim Ausführen von
SQL-Dateien im Windows oder Linux)
quasi der Standard, wenn keine Kennzeichnung vorhanden : Linux = UTF-8 und Windows =
ANSI
[add]
Zum Suchen und Ersetzen hab ich mir was zusammengesucht, das so auch erstmal die gewünschte Funktion bereitstellt.
Code:
find . -iname \*.sql -type f -exec sed -i.bak -e '1s/^\xEF\xBB\xBF//' {} \; -exec rm '{}.bak' \;
fehlt jetzt nur noch dass es automatisch geht ... .git/hooks/pre-commit.sample sieht schonmal vielversprechend aus