technikum29: development-Zone

Versionskontrolle mit Subversion

Eine illustrierte Werbung für TortoiseSVN

Die technikum29.de-Homepage wird seit zwei Jahren in einem Versionskontroll-Repositorium aufbewahrt, namentlich "Subversion", kurz "SVN". Über dessen erfolgreichen Einsatz wird bereits seit August 2008 in der Version 5.8 berichtet. Ein Jahr später liest man im Bericht zur Versionszählung 2009, dass es optimal wäre, wenn alle technikum29.de-Autoren das Arbeiten mit SVN-Clients erlernen würden (z.B. TortoiseSVN für Microsoft Windows). Diese Website dient dazu, TortoiseSVN, The coolest Interface to Version Control attraktiv zu machen.

Hoch- und Runterladen mit einem Klick

Zwei Icons können das FTP-Programm ersetzen: Eines zum Aktualisieren der lokal gespeicherten Homepage-Kopie, und ein anderes, um Änderungen hochzuladen auf die offizielle Homepage. Damit werden selbst umfangreiche, weit verstreute Änderungen in einem Klick übertragen. Wie das im Detail aussieht, sieht man auf den folgenden Bildern.

Aktualisieren der eigenen Kopie

Das mühsame Runterladen jeder einzelnen Datei gehört mit SVN der Vergangenheit an: Es wird einfach die komplette lokale Arbeitskopie der Homepage auf den aktuellen Stand gebracht (update). In einer Liste sieht man dann, was sich geändert hat. Der ganze Prozess dauert nur wenige Sekunden und gezieht völlig automatisch. Man braucht also nur noch alle Tage mal auf "aktualisieren" klicken, um zu prüfen, ob sich etwas geändert hat (falls darüber nicht per E-Mail informiert wurde).

Hochladen gemachter Änderungen

Hat man selbst Änderungen an der Homepage gemacht, kann man sie ebenso elegant hochladen. Dabei kann man eine Meldung schreiben, in der man kurz zusammenfasst, was man geändert hat. Darunter werden alle Dateien aufgelistet, die sich geändert haben. Vor jeder Datei gibt es ein Häckchen - wenn man dies nicht setzt, wird die Datei nicht hochgeladen. Das ist sehr praktisch, wenn man nur Teile der Änderungen hochladen will, um etwa Baustellen noch nicht hochzuladen.

Gelöschte und Hinzugefügte Dateien müssen ebenfalls nur mit einem Häckchen versehen werden, und schon passiert auf dem Server das gleiche. Hat man versehentlich etwas gelöscht, kann man es mit diesen Mitteln auch sehr einfach wieder zurückholen.

Versionskontrolle praktisch

Bei jeder Änderung der Homepage zählt SVN eine Zahl um eins hoch. Dadurch kann jede Änderung mit einer Nummer identifiziert werden - momentan (August 2010) sind wir bei ungefähr 180 Änderungen. Mit den Meldungen, die zu jeder Änderung geschrieben wurden, erhält man nun eine sehr schöne chronologische Übersicht über die Änderungen der Homepage. Auf diese Weise kann man sehr schnell nachvollziehen, wann eine Datei das letzte mal weswegen geändert wurde.

Doch das ist erst der Anfang: Die eigentliche Funktion von SVN besteht darin, alle alten Versionen aufzuheben. Das heißt, dass man sich derzeit also rückblickend 180 alte Homepageversionen anschauen kann! Stichwort Platzverschwendung: Es werden stets nur die Unterschiede zwischen Dateien gespeichert, sodass kaum Speicherplatz verwendet wird.

Die folgenden Bilder bilden den Abschluss dieser kleinen SVN-Bilderreihe und bieten einen Einstieg in die fortgeschrittenen Arbeitstechniken mit SVN.


Was habe ich nochmal am Text geändert?

Da nun also alle alten Dateiversionen noch zur Verfügung stehen, kann man sehr einfach vergleichen, welche Texte sich in den letzten zwei Monaten auf der Startseite geändert haben:

Links ist die alte Version zu sehen, rechts die neue (wie man an den Versionsnummern erkennt). Ganz links sind die Stellen hervorgehoben, wo sich in der Datei überall etwas verändert hat.

Was habe ich nochmal am Bild geändert?

Das gleiche funktioniert sogar mit Bildern. Zwei Bilder sagen mehr als 2000 Worte:

Wer hat was geändert?

Zuguterletzt noch ein exotisches Beispiel: TortoiseSVN erzeugt sogar Statistiken, wer wie viele Änderungen an der Homepage gemacht hat. Die folgende Statistik ist quartalsweise, auf der Y-Achse sind die Anzahl der Übertragungen einer Version aufgetragen.

Natürlich ist die Aussagekraft fraglich, da eine Übertragung ja nur eine einzige geänderte Datei, aber auch extrem viele beinhalten kann.