Diese Webseite verwendet Cookies, um bestimmte Funktionen zu ermöglichen und das Angebot zu verbessern. Indem Sie hier fortfahren, stimmen Sie der Nutzung von Cookies zu. Mehr Informationen

Anleitung|Howto|Tutorial zum Einrichten eines Subversion Repositories

Was ist Subversion?
Subversion (SVN) ist ein Versionskontrollsystem, welches aus freier Software besteht. Mit einem solchen System sind Sie in der Lage, Dateien und Verzeichnisse über einen längeren Zeitraum hinweg zu verwalten. Ihre Daten befinden sich hierbei in einem zentralen Speicher, dem Repository, welches alle Änderungen an den Daten aufzeichnet. So sind Sie jederzeit in der Lage, veraltete Daten wieder herzustellen oder sich Änderungen zwischen den verschiedenen Versionen anzeigen zu lassen.

Mithilfe von Subversion können viele Menschen weltweit an einem Projekt zusammenarbeiten. Es gilt weitläufig als der Nachfolger des weit verbreiteten Versionskontrollsystems Concurrent Versions System (CVS). Subversion wurde mit dem Ziel entwickelt, die Schwächen von CVS zu beseitigen und die Stärken beizubehalten. Da SVN eine ähnliche Syntax wie CVS aufweist, fällt der Wechsel leicht.

Wir stellen Ihnen, neben dem lokalen Zugang via SSH, SVN+SSH Zugang zur Verfügung. So haben Sie die Möglichkeit, über Netzwerkgrenzen hinweg, auf Ihr Repository zuzugreifen. Alles was Sie hierfür benötigen sind SSH- und SVN-Client.

Ruby on Rails unter Versionskontrolle, ein Beispiel

Schritt 1

Loggen Sie sich bitte mit Ihrem Benutzernamen und Ihrem Passwort in Ihren Shell Account ein und erzeugen Sie das Verzeichnis projekt1 im Ordner /tmp, die Verzeichnisse branches, tags und trunk im Odner /tmp/projekt1, das Verzeichnis svn im Ordner /files sowie die Verzeichnisse repositories und arbeitskopien im Ordner /files/svn. mkdir -p /tmp/projekt1/branches /tmp/projekt1/tags \
/tmp/projekt1/trunk /files/rails
Achtung! Alle Ihre Subversion-Projekte sollten sich der Übersicht halber unterhalb des Verzeichnisses /files/repositories/svn befinden

Schritt 2

Erzeugen Sie eine neue Rails Applikation im Verzeichnis /tmp/projekt1/trunk (oder kopieren Sie beliebige Dateien an diesen Ort). rails /tmp/projekt1/trunk

Schritt 3

Als nächstes müssen Sie ein Repository erzeugen svnadmin create /files/repositories/svn/projekt1

Schritt 4

Nun importieren Sie die Daten in das Respository

svn import /tmp/projekt1 file:///files/repositories/svn/projekt1 -m "erster Import" ...und erzeugen eine Arbeitskopie svn checkout file:///files/repositories/svn/projekt1/trunk \
/files/rails/projekt1

Schritt 5

Fertig, Ihre Daten befinden sich nun unter Versionskontrolle. Den Ordner /tmp/projekt1 können Sie nun löschen.

rm -r /tmp/projekt1 Da nicht immer alle Dateien der Versionskontrolle unterliegen müssen bzw. sollen, finden Sie im Verzeichnis /etc/subversion ein kleines rake script, welches für Sie automatisch ein optimales Rails Repository erstellt. Dieses kopieren Sie einfach in den Ordner /lib/tasks unterhalb Ihrer Rails Applikation. cp /etc/subversion/svn.rake /files/rails/projekt1/lib/tasks Jetzt begeben Sie sich in Ihr Rails Programm und führen das Script wie folgt aus: cd /files/rails/projekt1 rake svn_setup
Um Ihr Repository Personen über Netzwerkgrenzen hinweg zugänglich machen zu können, steht Ihnen ein svnserve-Prozess zur Verfügung. Im Folgenden Schritt konfigurieren wir diesen und starten ihn im Anschluss.

Der sichere Weg (SVN+SSH)

Schritt 1

Zuerst benötigen Sie einen SSH-Client und einen SVN-Client: - Benutzen Sie "puttygen" um ein public_auth Schlüsselpaar zu generieren (Maus hin und her bewegen) - speichern Sie den privaten Schlüssel lokal auf Ihrem Rechner (ohne Passwortschutz) Führen Sie folgenden Befehl auf der Konsole aus:

echo 'command="/usr/bin/svnserve -t -r /files/repositories/svn --tunnel-user=Benutzer",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa *public_key here*' >> /.ssh/authorized_keys Ersetzen Sie *public_key here* mit Ihrem zuvor erstellten öffentlichen Schlüssel, tragen Sie bei --tunnel-user= einen beliebigen Namen ein (dieser Benutzer wird als Author von Änderungen aufgeführt) und achten Sie darauf, dass obiger Befehl nicht über mehrere Zeilen verteil wird, sondern er muss sich in einer einzigen Zeile befinden.

Starten Sie putty und erstellen Sie einen neuen Account

Session->Host Name->Hostname (or IP Address) / Port Ihr Server-Hostname (z.B. server2.domaincamp.de) / 981 Session->connection type: SSH Session->Saved Sessions: myNewSSHConnection (z.B.) Connection->Data->Login details->Auto-login username: webXXX Connection->SSH->Prefered SSH Protocol version: 2 Connection->SSH->Auth->Private Key file for authentication: private_key.pkk angeben Nun nur noch die neue Session abspeichern.

Session save-button drücken Jetzt erstellt man ein Verzeichnis (z.B. C:\snvtest) und klickt mit der rechten Maustaste auf diesen Ordner.

Hier gibt es jetzt den Menüpunkt "TortoiseSVN->repo-browser", diesen auswählen.

Im nun erscheinenden Popup im URL-Feld folgendes eingeben:

svn+ssh://myNewSSHConnection/projekt1 TortoiseSVN sucht nun automatisch nach einer unter diesem Namen gespeicherten Session in putty (hier unsere Session "myNewSSHConnection"), authentifiziert sich mittels pubkey und startet den svnserver im tunnelmode.