Ohne .gitattributes liegen Dateien gemischt vor: 29 von 500 mit CRLF, der Rest mit LF. Jedes zeilenweise arbeitende Werkzeug schreibt eine CRLF-Datei dann mit LF zurueck, und der Diff zeigt statt drei geaenderten Zeilen die ganze Datei - bei Issue #7 waren es 578 statt 8, kurz vor dem Push bemerkt. Dieser Commit legt nur die Regel fest. Die Normalisierung der 29 Dateien kommt getrennt, damit die Historie lesbar bleibt. Refs #26
33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
# Zeilenenden
|
|
#
|
|
# Im Repository steht ueberall LF, unabhaengig davon, auf welchem System
|
|
# gearbeitet wird. Der Grund ist nicht Geschmack, sondern eine Falle:
|
|
#
|
|
# Solange Dateien gemischt vorliegen, schreibt jedes zeilenweise
|
|
# arbeitende Werkzeug - sed, ein Formatierer, ein Skript - die Datei mit
|
|
# LF zurueck. Der Diff zeigt dann nicht die drei geaenderten Zeilen,
|
|
# sondern die ganze Datei. Genau das ist passiert: 578 Diff-Zeilen statt
|
|
# 8, kurz vor einem Push bemerkt.
|
|
#
|
|
# Nebenwirkung derselben Mischung: "git diff --check" meldet bei
|
|
# CRLF-Dateien jede hinzugefuegte Zeile als "trailing whitespace", weil
|
|
# es das CR so wertet. Damit ist die Pruefung fuer diese Dateien wertlos.
|
|
* text=auto eol=lf
|
|
|
|
# Shell-Skripte laufen auf dem Server. Ein CRLF im Shebang macht sie
|
|
# unbrauchbar ("bad interpreter"), und der Fehler ist von aussen nicht
|
|
# anzusehen. Deshalb hier ausdruecklich, nicht nur ueber die Regel oben.
|
|
*.sh text eol=lf
|
|
|
|
# Binaerdateien nie anfassen.
|
|
*.png binary
|
|
*.jpg binary
|
|
*.jpeg binary
|
|
*.gif binary
|
|
*.ico binary
|
|
*.pdf binary
|
|
*.woff binary
|
|
*.woff2 binary
|
|
*.ttf binary
|
|
*.zip binary
|