Unterdrückung der Git-EOL-Konvertierung für PDF-Dateien

306
Brent.Longborough

Ich verwalte ein Git-Repository mit PDF-Dateien und habe Probleme, die Konvertierung von EOLs von CRLF nach LF durch Gitr zu stoppen. Da das Repo von Linux und Windows gemeinsam genutzt wird und Linux-Skripts enthält, habe ich mich für die Standardisierung von LF für Zeilenenden entschieden.

Dies ist reporoot / .gitattributes:

*.exe -text *.pdf -text * text eol=lf 

Dies ist der (relevante?) Teil von reporoot / .git.config:

[core] autocrlf = false 

Die PDF-Dateien befinden sich in / Reports

Beim Festschreiben (unter Linux) erhalte ich folgende Nachricht:

Warnung: CRLF wird in Reports / 2017-09-22.pdf durch LF ersetzt. Die Datei hat die ursprünglichen Zeilenenden in Ihrem Arbeitsverzeichnis.

Aber wenn ich (unter Windows) ziehe, ist das PDF fehlerhaft und wird nicht richtig angezeigt (manchmal - ich glaube, die, die funktionieren, haben keine CRLFs in ihren Daten).

Was mache ich falsch?

0

1 Antwort auf die Frage

0
Brent.Longborough

Aus dem Git-Handbuch:

Wenn mehr als ein Muster mit dem Pfad übereinstimmt, überschreibt eine spätere Zeile eine frühere Zeile. Dieses Überschreiben erfolgt pro Attribut.

Daher * textüberschreibt die Zeile die früheren Zeilen.

Die richtige Reihenfolge .gitattributeslautet:

* text eol=lf *.exe binary  *.pdf binary