git mit python sourcecode - .gitattributes

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8488
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 25. Juli 2012, 08:13

Ich hatte letztens pull request von einem windows Benutzer bekommen, bsp: https://github.com/jedie/django-phpBB3/pull/3/files
Dabei sah es so aus, als wenn er die ganze Python Datei verändert hatte. Obwohl die Änderungen nur einen kleinen Teil der Datei wirklich betraf. Ich gehe davon aus, das es an den Zeilenumbrüchen lag.

Nun hab ich gesehen, das man in .gitattributes so etwas machen kann:

Code: Alles auswählen

*.py text eol=lf diff=python
(Die Zeile habe ich von https://code.google.com/p/vineyard/sour ... attributes )

Würde das nicht bewirken das generell alle Python Dateien mit \n umbrochen werden, auch wenn ein Windows Editor Käse mache und über \n\r einfügt?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

Mittwoch 25. Juli 2012, 08:47

@jens: Ja, der Grund sind inkompatible Zeilenenden. Der betreffende Nutzer hat offenbar nicht viel Erfahrung mit Git.

Verweise den betreffenden Benutzer auf Dealing wit line endings und erkläre ihm, dass er "core.autocrlf=true" in seiner Git-Konfiguration aktivieren sollte. Dann verweise ihn auf How to Github (Stichwort „topic branches“), und lasse ihn seine Änderungen korrigieren.

Ich würde "eol=lf" weglassen. Dann konvertiert Git die Zeilenenden beim Checkout zu Windows-Zeilenenden, und beim Commit zurück zu Unix-Zeilenenden. So können Windows-Nutzer mit nativen Zeilenenden arbeiten, doch die Commits haben immer Unix-Zeilenenden (für den Fall, dass man mal eine Python-Datei in Notepad editieren möchte :) ). Mit "eof=lf" werden Dateien immer mit Unix-Zeilenenden ausgecheckt, was bei Python eigentlich nicht nötig ist.
Benutzeravatar
jens
Moderator
Beiträge: 8488
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 25. Juli 2012, 14:05

Danke für die Links!

Fazit also, lieber "eol=lf" nicht setzten. Hab ich auch noch nicht wirklich oft in anderen Projekten gesehen...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten