Git - autocorrect whitespace errors?

Fórumok

Sziasztok! Gitben keresek olyan megoldást, ami minden új commit esetén megakadályozza a whitespace error -ok bekerülését. git diff -ben látszódnak, de az szuboptimális mert lokális repónézegetővel is szoktam commitokat ellenőrizni push előtt (gitg/gitk), ezek viszont nem minden esetben vagy nem eléggé kiemelve mutatják meg az ilyen hibákat, kétféle eszközzel ellenőrizgetni pedig túl sok energiabefektetés.
Nekem az is elég, ha abortálja a commitot, de örülnék annak ha automatikusan javítana (úgy gondolom ez megbízhatóan automatizálható). Már gugliztam, úgy tűnik hogy standard beépített megoldás nincs, csak hook scriptekkel lehet ügyeskedni. Aki tud valami okosat ne tartsa vissza :)

Hozzászólások

commitra kell raknod egy hook-ot, ami ellenorzi a hibat. egrep-pel lehet pl a dos sorvege jelet ellenorizni.
a pontos megoldast nemtudom, de ez a problema masnal is elojott, ugyhogy a neten valszeg fennlesz, google talan megtalalja :D

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

+1 a hookokra, mivel ezek pont erre lettek kitalálva.
Merészebb helyeken különböző egyéb ellenörzések is vannak (pl javascript project esetén már találkoztam azzal, hogy jshint -en átengedi commitnál, aztán nem engedi addig commitolni, míg nem pont olyan, mint amilyennek lennie kell. Így pl a veletlen benne maradt debug-ok is felfedhetoek:)).

.git/hooks/pre-commit.sample -t nézd meg.

Konkrétan az utolsó két sora:

# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --

Tehát ha ezt a három sort beteszed a .git/hooks/pre-commit fájlba, és futtatható, akkor elvileg azt teszi, amit akartál:

#!/bin/sh
# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --