Eine Säule inmitten eine Stadt mit der Aufschrift Subversión. Dahinter sind Gleise erkennbar.

Subversion – Was ist´s, was bringt´s?

Mal ganz ehrlich. Viele Programmierer fangen nach einer Idee direkt und ohne Umschweife das Schreiben ihres Codes an. Dabei entsteht ein ganzer Wulst an Funktionen und Logiken. Manche davon sind besser, andere schlechter und so wird von der einen Stelle zur anderen kopiert, gelöscht und neu geschrieben. Stellt man jetzt jedoch irgendwann einmal fest, dass die letzten Schritte nicht dem entsprechen, was man sich vorstellt macht man diese rückgängig. Ist das nicht möglich hat man ein Problem und muss versuchen sich das Geschriebene wieder irgendwie zusammenzureimen.

Dieses eben beschriebene Szenario kenne ich aus meiner eigenen Erfahrung nur allzu gut und hätte ich zu diesen Zeitpunkten Subversion eingesetzt, hätte ich mir einiges an Stress und Verkomplizierungen sparen können.

Was ist Subversion?

Subversion ist eine Software zur Versionsverwaltung. Mit ihr ist es möglich jederzeit nachzuvollziehen wer wann was an einer Datei geändert hat. Wird der Log richtig gepflegt wird auch sofort klar, warum die Änderung erfolgt ist. Abgesehen davon kann man mit Subversion nach einer fehlerhaften Entwicklung auch ältere Versionsstände, sogenannte Revisionen, wiederherstellen. Und zu guter letzt kann man mit diesem Tool noch fertige Release-Stände auszeichnen.

Subversion unterstützt also Entwickler nicht nur dabei ihren eigenen Code unter Kontrolle zu halten, sondern ist vor allem für Teams aus mehreren Entwicklern gedacht. Man hat die Möglichkeit, dass sich mehrere Personen die aktuelle Revision eines Projektes oder einer Datei herunterladen (Checkout), daran arbeiten und sie anschließend wieder hochladen (Commit) und somit eine neue Revision erstellen. Dadurch ist es möglich, dass mehr als eine Person an einer Datei arbeitet. Beim Commit werden die verschiedenen Codestände wieder zusammengeführt (Merge), selbst dann wenn von der aktuellen Datei schon eine neue Version existiert. Probleme treten nur dann auf, wenn an der gleichen Stelle im Code etwas geändert wurde (Conflict). Hier müssen sich die betroffenen Entwickler zusammensetzen und einen gemeinsamen Nenner finden.

Was bringt Subversion?

Alles bis jetzt geschrieben ist ja ganz nett und hört sich gut an, aber wo bleibt jetzt der praktische Nutzen von alldem?

Im Grunde genommen kann ich nur wiederholen, was bereits geschrieben ist. Subversion unterstützt Entwickler in der Kontrolle und Entwicklung ihres Codes. Nicht mehr und nicht weniger. Subversion ist keine eierlegende Wollmilchsau. Es hilft nicht dabei besseren Code zu schreiben. Es tut einfach das, was es kann und das ist verschiedene Entwicklungsstände zu speichern und zugänglich zu machen.

Allerdings kann Subversion bei richtiger Verwendung ein extrem mächtiges Tool darstellen. Und das nicht nur bei der Entwicklung von Software, sondern auch bei der Verwaltung von Dokumenten, Bildern, Musik, Videos, usw. Hier nehme ich einfach mal die Wikipedia als Beispiel. Jeder dort eingestellte Artikel besitzt verschiedene Versionen, z.B. der Subversion-Artikel. Anhand dieser Versionen kann weltweit jeder Interessierte nachsehen wann welche Änderung gemacht wurde und warum. Baut jemand Mist wird einfach eine ältere Version wiederhergestellt und schon geht es weiter. Der Nutzen bei Wikipedia sollte jetzt wohl jedem klar geworden sein.

Durch die Tatsache, dass man mit Subversion nahezu alles verwalten kann und das an einer zentralen Stelle wird das Tool erst richtig nützlich. Hierzu ein praktisches Beispiel aus der Arbeit. Ein Projekt steht an, an dem eine Person entwickelt. Gegen Ende des Projektes wird die Zeit üblicherweise etwas knapp und ein zweiter Entwickler steigt ein. Diese zweite Person muss jetzt nicht lange darauf warten, dass er den Code vom Kollegen geschickt bekommt, sondern kann sofort anfangen, indem er sich das Projekt auscheckt. Durch den Log kann er sich auch schnell über den aktuellen Stand informieren und direkt loslegen. Natürlich müssen sich die beiden Entwickler absprechen wer was erledigt. Die persönliche Komponente kann und darf nicht verloren gehen für den Erfolg eines Projektes.

Das war jetzt nur ein Beispiel von vielen Tausend, die man finden könnte, aber ich denke hierdurch ist zumindest ein Nutzen dieses Tools klar geworden. Wer noch Fragen hat kann diese gerne in den Kommentaren stellen

Share this:

Hallo, ich heiße Benjamin Hofmann und mir gehört dieses Blog. Wenn du mehr über mich erfahren willst kannst du das auf dieser Seite tun. Ich bin natürlich auch auf Twitter, Facebook und Google+ zu finden.

7 comments, add your’s.

Vielen Dank für den Beitrag

Ich verwende das momentan auch mit meiner Gruppe für ein Schulprojekt. Wir sind schon bei Revision 124 angekommen

Ich muss echt sagen, dass man mit SVN (Subversion) fast nur Vorteile hat. Besonders dass jeder immer die aktuellen Dateien hat, finde ich super

Simon

    Ihr nutzt das in der Schule? Das ist was Seltenes.

    Sogar in meiner Klasse in der Berufsschule scheinen manche so ihre Probleme damit zu haben zu verstehen warum man Subversion benötigt geschweige denn wie man es benutzt.

      Nur meine Gruppe (3 Leute) nutzt das, nachdem ich keine Lust mehr hatte, ständig die aktuellen Dateien per USB-Stick oder E-Mail zu verteilen. Jetzt sind aber alle begeistert davon. Evtl. sollte ich das mal meinem Lehrer vorschlagen

        Ach so. Ich dachte ihr lernt das in der Schule. Finde ich aber stark von dir, dass du bei sowas direkt an Subversion denkst

Jelly

WUNDERBARE ERKLÄRUNG!!!!!!!!!
ich bedanke mich vielmals : )

Leave a comment