Codekontrolle mit Subversion

Wenn Sie länger an einer Software arbeiten oder nach einer langen Zeit wieder neu bei einer Software weiterarbeiten müssen kennen Sie sicher das Problem: Man schaut sich den Code an und obwohl man ein paar inline Kommentare gemacht hat kann man sich beim besten Willen nicht mehr vorstellen wieso man den Code so kompliziert geschrieben hat und was die dritte Zeile hier eigentlich soll die gar keinen Sinn macht. Mir geht es jedenfalls sehr oft so. Das ist nur ein Problem, das Sie mit Subversion lösen können.

Subversion ist eine kostenlose Software zur Versionsverwaltung von Dateien. Sinn machen hier aber nur solche Files die im Plan Text Format abgespeichert werden (die man mit dem Notepad öffnen und lesen kann). Die Software registriert nämlich jede Veränderung des Textes. Wenn Sie also eine zB eine HTML Datei bearbeiten und Sie den Title Tag ändern registriert Ihr Subversion Client die Änderung und Sie können ein Kommentar abgeben. Also genau festhalten wieso Sie genau in dieser Zeile genau diese Zeichen geändert haben.

Die Versionskontroller ist als Server/Client Modell aufgebaut. Es gibt also einen Subversion Server der immer läuft und als große Datenbank fungiert die einerseits alle Änderungen der Dateien mitprotokolliert und andererseits auch Ihre Kommentare dazu speichert. Auf Ihrem PC muss ein Subversion Client installiert sein der Ihre Änderungen in den Dateien erkennt und mit dem Sie dann diese Änderungen an den Server übermitteln. Sie haben also lokal ganz normale alle Dateien in einem Ordner gespeichert die Sie bearbeiten. Zusätzlich werden diese Dateien nach Änderungen zum Server geschickt. Es gibt also alle Dateien doppelt am Server und Client.

Ich möchte schnell ein paar grundlegende Begriffe im Zusammenhang mit Subversion und generell mit Versionsverwaltung erklären:

  • Die lokalen Dateien auf ihrem PC werden als Working Copy bezeichnet.
  • Eine Revision ist die Zusammenfassung von beliebig vielen Änderungen in beliebig vielen Dateien mit genau einem Kommentar dazu. Das heißt wenn Sie einen Bug beheben, dafür drei Dateien leicht abändern müssen und danach eine kurzes Kommentar speichern ist das eine Revision.
  • Alle Änderungen die Sie lokal auf Ihrem PC machen werden zum Subversion Server gesendet indem Sie ein Commit machen. Nach einem Commit wird die Revisionsnummer um eins erhöht.
  • Mit einem Revert können alle Änderungen nach einer Revision rückgängig gemacht werden.
  • Wenn ein zweiter Programmierer Dateien bearbeitet hat können Sie mittels Update Ihre lokalen Dateien auf den neuesten Stand bringen.

Welche Vorteile bringt mir Subversion?

Obwohl eine Versionskontrolle von Dateien eher für Teams gedacht ist die zusammen Arbeiten möchten bringt Ihnen Subversion sehr viele Vorteile auch wenn Sie nur alleine Programmieren.

  1. Sie haben immer vollen Überblick über alle Änderungen.
  2. Es können keine Daten verloren gehen. Sollten Sie unabsichtlich Ihre Festplatte löschen gibt es immernoch alle Dateien am Subversion Server.
  3. Wenn eine Änderung im nachhinein doch nicht so gut war wissen Sie genau welche Zeilen Sie in welchen Dateien rückgängig machen müssen.
  4. Wenn Sie mehrere Tage an einer einzigen Änderung arbeiten können Sie vor dem Commit nochmal genau überprüfen was Sie alles geändert haben und ob alles Sinn macht.
  5. Sie haben bereits die gesamte Infrastruktur wenn Sie einen zweiten Programmierer Zugriff verschaffen wollen der Ihnen helfen möchte.