2012-12-04 12 views
5

Ich habe eine .gitattributes Datei in meinem Repository, das ich wie diese ungesetzt core.autocrlf.gitattributes mit core.autocrlf ungesetzt

* text=auto 
*.txt text 

sieht habe im Repository, global, und Systemeinstellungen. Mein Verständnis, basierend auf der Dokumentation für gitattributes, ist, dass alle Dateien im Repository, deren Namen mit .txt enden, mit den nativen Zeilenenden ausgecheckt werden sollten. Was ich jedoch sehe, ist, dass die .txt-Dateien immer LF für Zeilenenden haben, sogar unter Windows. Angesichts dieser Konfiguration, warum sind die Zeilenenden CRLF nicht unter Windows?

+0

Ich hätte gedacht, dass Ihre zweite Zeile besiegt ist, in diesem Fall sollten Sie die Zeilen tauschen .. Ich sah jemanden auf SO sagen Sie können ein zweites Mal in .gitattributes nicht setzen und in Ihrem Beispiel haben Sie tatsächlich festgelegt * .txt-Dateien zu text = auto in der ersten Zeile. – sabgenton

+0

@sabgenton, von der [man page] (http://www.kernel.org/pub/software/scm/git/docs/gitattributes.html), "Wenn mehr als ein Muster mit dem Pfad übereinstimmt, überschreibt eine spätere Zeile eine frühere Zeile. Dieses Überschreiben erfolgt pro Attribut. " Möglicherweise möchten Sie auch auf den Link in meiner Antwort verweisen. – cleek

+0

möglich Duplikat von [git Zeilenenden: renormalize scheint nicht die Rechte Zeilenenden zu überprüfen] (http://stackoverflow.com/questions/13531988/git-line-endings-renormalize-does-not-seem-to-checkout -die-rechte-Linie-Enden) –

Antwort

12

Das Problem ist, dass es einen Fehler in der Behandlung von core.eol gibt. Die Dokumentation für gitattributes besagt, dass, wenn sie nicht gesetzt ist, native verwendet wird, die standardmäßig auf die korrekten Zeilenenden für Ihr System (CRLF für Windows, LF für Unix) eingestellt sein sollte, aber core.eol nicht gesetzt oder auf meinem System auf nativ gesetzt wird ergibt immer LF für Linienendungen. Die Antwort lautet daher, core.eol explizit auf crlf zu setzen. Die Kommentare unter http://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line/ führten mich zu dieser Antwort.

+2

Vielen Dank für die Bestätigung, ich dachte, ich würde für eine Weile verrückt werden. Ich habe [einen Fehler] eingereicht (http://github.com/msysgit/msysgit/issues/97). – bricelam

+0

@Brice: Danke, dass du diesen Fehler protokolliert hast. Ich wollte gerade die gleiche Frage stellen. –

+0

Ich war derjenige, der den Kommentar gemacht hat, nachdem ich hier gefragt habe - siehe die Antwort [hier] (http://Stackoverflow.com/a/13552603/281545) für einen Link zu einem Fehlerbericht. Wirklich froh, dass es einige Aufmerksamkeit auf sich zieht es ist sehr ärgerlich :) –

-3

Sie müssen core.autocrlf zur Eingabe festlegen. Unter Windows setze es auf wahr.

Wenn Sie x-Plattform nicht teilen, legen Sie es auf false fest und vergessen Sie die Attribute insgesamt.

+0

Schlechter Vorschlag in der zweiten Zeile. Sie wissen nicht, ob Sie später mit x-platform teilen möchten, also ist es ratsam, es von Anfang an zu konfigurieren. – orad

Verwandte Themen