SVN

Aus RWTH-Wiki

Wechseln zu: Navigation, Suche

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

Datei:Svn tut checkout.jpg
Checkout auswählen ...
Datei:Svn tut checkout2.jpg
... und Serveradresse eingeben
Zunächst müsst ihr natürlich einmal zum SVN-Server connecten und euch die dort bereits hinterlegten Dateien besorgen. Dazu erstellt ihr einen Ordner, in dem ab jetzt die Dateien des Repositorys (des Projekts) abgelegt werden sollen. Auf diesen Ordner klickt ihr nun rechts um im Kontextmenu den Eintrag "SVN Checkout ..." auswählen zu können. Ein neues Fenster öffnet sich, in dem ihr aufgefordert werdet, die Adresse des SVN-Servers einzugeben.

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

Datei:Svn tut commit.jpg
Geänderte Daten hochladen (Commit)
Die Dateien auf eurer Festplatte könnt ihr natürlich nun verändern oder neue hinzufügen. Wenn ihr das gemacht habt, sind diese Dateien aber noch nicht automatisch auf dem SVN-Server und für die anderen noch unsichtbar. Um das zu ändern gibt es den Befehl "Commit", den ihr über den Eintrag "SVN Commit ..." im Kontextmenü aufrufen könnt. Entweder macht ihr das für jede einzelne Datei oder für ganze Ordner, wobei jeweils die Unterordner mit einbezogen werden.

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

Datei:Svn tut revert.jpg
Revert auswählen
Solltet ihr euch mal vertan haben und z.B. die falsche Datei editiert haben, könnt ihr das ganze wieder mit dem Befehl "Revert" rückgängig machen. Dazu einfach im Kontextmenü das Untermenu "TortoiseSVN" auswählen und darin dann "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.

Weblinks

Persönliche Werkzeuge