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 :)
- 4880 megtekintés
Hozzászólások
sub.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
500-at dob a gentoo portal. :)
- A hozzászóláshoz be kell jelentkezni
Ki kene vennem az alairasombol, meghalt mar szegeny.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
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!
- A hozzászóláshoz be kell jelentkezni
+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:)).
- A hozzászóláshoz be kell jelentkezni
Raadasul akarmilyen nyelven lehet ilyeneket irni
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Mini CI :)
- A hozzászóláshoz be kell jelentkezni
.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 --
- A hozzászóláshoz be kell jelentkezni
Köszi, megnézem!
- A hozzászóláshoz be kell jelentkezni