SVN
Aus RWTH-Wiki
In diesem Artikel will ich eine kleine Einführung geben, was SVN ist, was man damit machen kann und wie man es unter Windows und Linux benutzt. Für weitergehende Informationen über SVN empfehle ich den Wikipedia-Artikel.
Diese Einführung entstand, weil ich für mein (André) Projekt, Musterlösungen von Theo-Übungen zu erstellen und das ganze mit mehreren über einen SVN-Server zu verwalten, vielen Leuten SVN erklären musste und keine Lust hatte, immer wieder das Gleiche zu erzählen :)
Inhaltsverzeichnis |
Was ist SVN
SVN (Abkürzung für Subversion) ist der Nachfolger von CVS, einem ähnlichen System zur Versionsverwaltung. Das bedeutet konkret, dass auf einem zentralen Server die Dateien eines Projekts (bzw. in der Sprache von SVN ein Repository) abgelegt sind und die Benutzer diese Dateien abrufen und neue bzw. veränderte hochladen können, das ganze bequem mit wenigen Befehlen.
Der große Vorteil ist nun, dass dabei nie die Datei direkt überschrieben wird, sondern alte Versionen beibehalten werden. Sehr praktisch also für Projekte, an denen mehrere Leute gleichzeitig Arbeiten, da man eventuelle Fehler wie das versehentliche Überschreiben der Arbeit eines Anderen, einfach rückgängig gemacht werden kann.
SVN unter Windows
In diesem Artikel soll nun auch eine Einführung gegeben werden, wie man TortoiseSVN installiert und benutzt. Dieses Programm bindet sich in das Kontextmenü des Explorers ein und ist deshalb recht bequem zu nutzen, man braucht nicht extra ein Programm dafür zu öffnen. Dabei stellt es eine grafische Oberfläche für SVN dar, das normalerweise ein kommandozeilenbasierendes Programm ist. Die Befehle, die man also über die Kommandozeile eingeben kann sind identisch mit denen, die man in TortoiseSVN auswählen kann.
SVN unter Linux
Jede Linux-Distribution sollte ein SVN-Paket mitliefern, wenn nicht, würde mich das ziemlich wundern. Wenn es also noch nicht vorhanden ist einfach mit der DVD der Distribution SVN nachinstallieren oder aus dem Internet runterladen (-> SVN Projektseite).
TortoiseSVN (Windows)
Installation
Einfach den gewünschten Installer (32 bit oder 64 bit) von der Projektseite runterladen - wenn ihr nicht wisst, was ihr braucht, braucht ihr wahrscheinlich 32 bit. Nach dem Download den Installer starten und den Anweisungen folgen. Wenn die Installation erfolgreich war, dann habt ihr ab jetzt, wenn ihr im Explorer/Arbeitsplatz rechts auf einen Ordner klickt ein paar zusätzliche Optionen.
erste Schritte
Checkout
Habt ihr das getan und OK gedrückt, werdet ihr, wenn das Projekt nicht öffentlich ist, nach einem Benutzernamen und Passwort gefragt. Einfach eingeben und schon solltet ihr sehen, dass Dateien runtergeladen werden.
Commit
Das sich neu öffnende Fenster bietet verschiedene Optionen für das Commit: im obersten Eingabefeld könnt ihr eine Beschreibung dessen eingeben, was ihr gemacht habt. Hier gehört nur eine kurze Beschreibung rein, die es einem im Nachhinein erleichtern soll, nachzuvollziehen, was gemacht wurde. In der sich darunter befindlichen Liste sind die veränderten Dateien aufgeführt - alle jene, die hochgeladen werden sollen, bekommen ein Häkchen. Nach dem klick auf OK seht ihr, wie die Dateien auf den Server geladen werden und ab jetzt für alle verfügbar sind.
Update
Bevor ihr anfangt, an Dateien zu arbeiten, solltet ihr überprüfen, ob nicht jemand anderes schon Änderungen durchgeführt hat. Um das Projekt auf euerem Rechner auf den aktuellen Stand zu bringen reicht ein Klick auf "SVN Update": alle Dateien und Unterordner des Verzeichnisses, auf das ihr das Update anwendet, werden nun mit dem Server abgeglichen und bei Bedarf runtergeladen.
Revert
Und sonst?
Die oben beschriebenen Funktionen waren die Basics - das was man zum Betrieb primär braucht. Natürlich unterstützt SVN noch viel mehr, wer sich dafür interessiert, dem seien diverse Anleitungen im Internet empfohlen. Dabei wird aber meist nicht TortoiseSVN als Basis genommen sondern SVN im Allgemeinen. Die Funktionen lauten aber bei TortoiseSVN genauso, da es nur eine grafische Oberfläche ist.
SVN (Linux)
Bei dem SVN-Client für Linux wird es sich um ein kommandozeilenbasierendes Programm handeln, ihr bedient es also über die Konsole. Die Funktionen sind die gleichen, wie schon weiter oben bei TortoiseSVN beschrieben, ich werde hier nur auf ein paar Eigenheiten bei der Benutzung eingehen. Auch hier sei wieder für ausführlichere Informationen auf das Internet verwiesen, komplette Anleitungen finden sich zuhauf.
Checkout
Um an einem Projekt teilzunehmen, müsst ihr zunächst ein Checkout durchführen, damit werden alle Daten in den Ordner runtergeladen, in dem ihr euch gerade befindet (also am besten, wenn noch nicht gemacht, einen Ordner erstellen). Zum Checkout einfach folgenden Befehl eingeben:
svn co http://url.zum.server/pfad --username user
Dabei müsst ihr die euch mitgeteilte Server-URL eingeben und den Benutzernamen, der euch zugewiesen wurde. Danach werdet ihr nach einem Passwort gefragt. Sollte es sich um einen offenen Server handeln, bei dem keine Benutzeranmeldung erforderlich ist, so gebt ihr einfach keinen Benutzernamen an. Das co bezeichnet übrigens Checkout.
Update
Um die Daten auf eurer Festplatte abzugleichen, braucht ihr einfach nur
svn update
eingeben. Dann werden automatisch die Daten mit dem Server abgeglichen und eventuell neue runtergeladen (am besten macht ihr das, während ihr euch in dem Hauptordner des Projekts befindet, damit alle Daten überprüft werden - solltet ihr euch in einem Ordner befinden, der gar nicht zum Repository gehört, dann wird dieser Befehl gar nichts machen).
Add
Im Gegensatz zu TortoiseSVN müsst ihr unter Linux Dateien zunächst die Information zuteilen, dass sie auch zum Projekt gehören, wenn ihr neue hinzufügen wollt. Dazu einfach
svn add filename
eingeben und die Datei filename wird markiert, beim nächsten Commit ins Projekt aufgenommen zu werden.
Commit
Wenn ihr alles gemacht habt und die Daten nun auf den Server kopieren wollt, dann gebt ihr im Verzeichnis des Projektes auf eurer Festplatte
svn commit
ein und alle Dateien, die geändert wurden oder dahingehend markiert wurden, dass sie hinzugefügt werden sollen, werden hochgeladen. Allerdings wird sich zunächst ein Editor öffnen, in dem ihr ein Kommentar eingeben könnt, es aber nicht müsst. Der Kommentar sollte dazu da sein, um besser einsehen zu können, was an den Dateien geändert wurde. Habt ihr das getan, den Editor schließen und die Dateien sollten hochgeladen werden.
SVN-Server
Die RWTH-Aachen stellt unter [1] einen kostenfreien SVN-Server für alle Studenten zur Verfügung.

