NETWAYS goes GIT

71px-Git-logo.svgDie Zeit ändert sich – und damit auch die Theorien und Techniken der Versionsverwaltung. Dabei halten wir uns strikt an den historischen Verlauf: CVS, SVN und GIT. Man möge meinen, NETWAYS macht jeden Blödsinn mit. Jedoch bietet GIT zahlreiche Vorteile gegenüber SVN, genauso wie SVN gegenüber CVS diverse überzeugende Argumente liefern konnte.
Einer der genannten Vorteile ist die dezentrale Architektur. Es bedarf keinem zentralen Repository mehr, welches alle Änderungen zusammenfasst. Natürlich sollte es einen gemeinsamen Speicherort geben, aber der neuartige, durch GIT bereitgestellte Ansatz bedeutet mehr Unabhängigkeit für die Entwickler. Sie können ihre Änderungen lokal vollziehen, ‘mergen’ und ‘branchen’. Wann Änderungen publiziert werden, ist nicht mehr ganz so wichtig. Je länger nur damit gewartet desto mehr Fehler müssen beseitigt werden und desto mehr Code muss angepasst werden – erst nachdem die Integrität zum Repository gewährleistet wurde, können die Entwickler ihren Code ins GIT ‘pushen’.
Weiterhin ist das Arbeiten mit Wegwerf-Branches (oder Themen-Branches) ein weiterer Pluspunkt. Für ein Problem wird extra ein neuer Branch erstellt welcher den Hauptzweig nicht verletzt. Nach fertiger Arbeit werden die Änderungen in den Masterbranch übernommen und der Themenbranch wird gelöscht. Auch hier ist der Entwickler wieder dafür verantwortlich, den Code zu bereinigen, damit die Vereinigung mit dem Hauptzweig gelingt.
Natürlich gibt es auch Nachteile. Auf eine eigene Authentifizierung wurde gänzlich verzichtet. Der Zugriff muss also mit einer weiteren Schicht übernommen werden: SSH oder WebDav. Bei WebDav ist allerdings der Geschwindigkeitsvorteil dahin. Um ein öffentliches Repository zu betreiben gibt es außerdem noch third-party Script-Sammlungen wie z.B. “gitosis”, welches an Hand von checkin- oder checkouthooks Zugriffe über SSH-Schlüssel steuert.
Neulinge müssen sich leider durch den Wald der Kommandos und Möglichkeiten schlagen, da alte Techniken von SVN, wie z.B. Export, branching oder tagging, komplett überarbeitet oder entfernt wurden.
Nach erfolgreichem Einarbeiten in GIT, erhält man Zugriff auf eine (sehr) schnelle und robuste Lösung um den Code vieler Entwickler unter einen Hut zu bekommen und bewahrt im gleichen Zug das Repository vor dilettantischen Fehlern.
In diesem Sinne wünsche ich noch ein schönes Restjahr …

Marius Hein
Marius Hein
Head of Development

Marius Hein ist schon seit 2003 bei NETWAYS. Er hat hier seine Ausbildung zum Fachinformatiker absolviert, dann als Application Developer gearbeitet und ist nun Leiter der Softwareentwicklung. Ausserdem ist er Mitglied im Icinga Team und verantwortet dort das Icinga Web.