Coding Subversion Pre Commit Hook
Geschrieben von Markus in Administration & Coding am 16.02.2011 um 17:45 Uhr.
In einem anderen Artikel habe ich bereits vor einer ganzen Weile schon über die so nützlichen SVN Hooks geschrieben, die standardmäßig bei jedem Repository mitgeliefert werden. Damals habe ich ausschließlich das post-commit Hook, also dem Script, was nach dem erfolgreichen Commit ausgeführt wird, an einem Beispiel vorgestellt.
Heute möchte ich mich dem pre-commit Script widmen. Dieses Script wird, wie der Name vermuten lässt, vor dem entgültigen Commit ins Repository ausgefürt. Wie auch beim post-commit Hook gibt es keine Grenzen in der Umsetzung. Es kann den Code auf Syntax-Fehler prüfen, den Commit verweigern, wenn der Comment nicht den eigenen Standards entspricht oder die Einhaltung der internen Programmierstandards checken.
Inwieweit diese Prüfmechanismen sinnig oder überlüssig sind, hängt ganz vom angewandten System und natürlich jedem Team selbst ab. Ich habe da meine klaren Regeln, was in das Hook gehört, und was nicht.
Die Prüfung auf Syntax-Fehler ist im Produktivsystem unverzichtbar. Was live geht, muss wenigstens vom Syntax her stimmen (von der Logik her natürlich auch). Im Developing ist das allerdings nicht so wichtig, als das eine Prüfung den Commit verweigern sollte. Ebenso ist es im Branch weniger wichtig, dass die Comment-Standards eingehalten werden. Im trunk allerdings schon, denn gerade im hitzigen Gefecht zwischen Bugs und Fixes ist es wichtig, dass irgendjemand auch nach Wochen noch durchblickt, was in welcher Revision eigentlich eingespielt wurde, ohne die History durcharbeiten zu müssen.
Anders sieht es mit den Programmierrichtlinien aus. Diese Prüfung gehört definitiv ausschließlich in den Entwicklungsbereich. In das Produktivsystem kommt so nur standardkonformer Code. Im Falle eines schnellen Bugfix direkt im Live-System, bei dem das Motto "Zeit ist Geld" zählt, sind die Richtlinien ersteinmal Nebensache.
Im Folgenden möchte ich also meine Lösung vorstellen, die die eben geschriebenen Regeln berücksichtigt und umsetzt.

[ganzen Beitrag lesen …]
Heute möchte ich mich dem pre-commit Script widmen. Dieses Script wird, wie der Name vermuten lässt, vor dem entgültigen Commit ins Repository ausgefürt. Wie auch beim post-commit Hook gibt es keine Grenzen in der Umsetzung. Es kann den Code auf Syntax-Fehler prüfen, den Commit verweigern, wenn der Comment nicht den eigenen Standards entspricht oder die Einhaltung der internen Programmierstandards checken.
Inwieweit diese Prüfmechanismen sinnig oder überlüssig sind, hängt ganz vom angewandten System und natürlich jedem Team selbst ab. Ich habe da meine klaren Regeln, was in das Hook gehört, und was nicht.
Die Prüfung auf Syntax-Fehler ist im Produktivsystem unverzichtbar. Was live geht, muss wenigstens vom Syntax her stimmen (von der Logik her natürlich auch). Im Developing ist das allerdings nicht so wichtig, als das eine Prüfung den Commit verweigern sollte. Ebenso ist es im Branch weniger wichtig, dass die Comment-Standards eingehalten werden. Im trunk allerdings schon, denn gerade im hitzigen Gefecht zwischen Bugs und Fixes ist es wichtig, dass irgendjemand auch nach Wochen noch durchblickt, was in welcher Revision eigentlich eingespielt wurde, ohne die History durcharbeiten zu müssen.
Anders sieht es mit den Programmierrichtlinien aus. Diese Prüfung gehört definitiv ausschließlich in den Entwicklungsbereich. In das Produktivsystem kommt so nur standardkonformer Code. Im Falle eines schnellen Bugfix direkt im Live-System, bei dem das Motto "Zeit ist Geld" zählt, sind die Richtlinien ersteinmal Nebensache.
Im Folgenden möchte ich also meine Lösung vorstellen, die die eben geschriebenen Regeln berücksichtigt und umsetzt.

[ganzen Beitrag lesen …]