Ich hab mir damals ein PHP Hook Framework gebastelt, da das CodeSniffer Script (damals) versucht hat, auch gelöschte Dateien zu validieren, ja sogar Verzeichnisse. Gleichzeitig noch Datei, Verzeichnisfilter zu implementieren, weil ich z.B. bei Verwendung Drittkomponenten beim Commiten nicht immer den gleichen Style Guide voraus setzen kann. Je größer das Projekt umso mehr individuelle Hooks möchte man haben und das wird mit Shell Scripte evtl. unübersichtlich.
Das ganze gibt es hier: http://github.com/alexanderzimmermann/HookFramework fertig.
Im Wiki ist eine Doku wie man das ganze implementieren kann.