Herzlich Willkommen in Laubingers domainCAMP - GPcom Media
Webhosting
Server
Webdesign
Support
Server-Status
ReferenzenSUPPORT-HOTLINE
+49 (0) 2041 986 00 15
Support - Versionskontrollsystem Subversion
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.
GPcom Media stellt Ihnen, neben dem lokalen Zugang via SSH, einen eigenen svnserve-Prozess zur Verfügung. So haben Sie die Möglichkeit, über Netzwerkgrenzen hinweg, auf Ihr Repository zuzugreifen. Alles was Sie hierfür benötigen ist ein SVN-Client.
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.
GPcom Media stellt Ihnen, neben dem lokalen Zugang via SSH, einen eigenen svnserve-Prozess zur Verfügung. So haben Sie die Möglichkeit, über Netzwerkgrenzen hinweg, auf Ihr Repository zuzugreifen. Alles was Sie hierfür benötigen ist ein 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/svn/repositories /files/svn/arbeitskopien Achtung! Alle Ihre Projekte müssen sich unterhalb des Verzeichnisses /files/svn/repositories befinden wenn Sie beabsichtigen den SVN-Server zu benutzen!
|
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/svn/repositories/projekt1 |
Schritt 4 Nun importieren Sie die Daten in das Respository svn import /tmp/projekt1 file:///files/svn/repositories/projekt1 -m "erster Import" ...und erzeugen eine Arbeitskopie svn checkout file:///files/svn/repositories/projekt1/trunk \ /files/arbeitskopien/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/arbeitskopien/projekt1/lib/tasks Jetzt begeben Sie sich in Ihr Rails Programm und führen das Script wie folgt aus: cd /files/arbeitskopien/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.
Methode 1: 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/svn/repositories --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/project1 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. Methode 2: Der unsichere Weg (SVN, Klartext) Hinweis! Bitte nutzen Sie stets Methode 1: Der sichere Weg (SVN+SSH), da die nachfolgende Methode nicht mehr unterstützt wird.
Schritt 1 Als erstes müssen Sie die Datei svnserve.conf anpassen, welche sich im Verzeichnis /conf Ihres Repositories befindet. pico /files/svn/repositories/projekt1/conf/svnserve.conf Ersetzen Sie die Zeile # [general] ...durch [general] Ersetzen Sie die Zeile # anon-access = read # auth-access = write ...durch anon-access = read auth-access = write Ersetzen Sie die Zeile # password-db = passwd ...durch password-db = passwd Ersetzen Sie die Zeile # realm = My First Repository ...durch realm = My First Repository Diese Konfiguration erlaubt anonymen Benutzern Ihr Repository auszuchecken, jedoch nicht Veränderungen vorzunehmen und diese zu speichern. Über die Konfigurationsanweisung "password-db" können Sie eine Benutzerdatei festlegen, dessen Inhalt je nach Einstellung, Benutzern lesenden oder gar schreibeneden Zugriff ermöglicht. Eine Benutzerdatei kann entweder global für alle oder gezielt für bestimmte Repositories gelten. Anlegen können Sie diese Datei wie folgt: Datei anlegen: touch /files/svn/repositories/projekt1/conf/passwd Datei gegen fremden Zugriff schützen: chmod 600 /files/svn/repositories/projekt1/conf/passwd Datei Bearbeiten: pico /files/svn/repositories/projekt1/conf/passwd Tragen Sie nun Ihre Benutzer ein: [users] foo = bar Wenn Sie obige Zeilen in Ihre Datei eintragen erstellen Sie somit einen Benutzer foo mit dem Passwort bar. |
Schritt 2 Nun können Sie Ihren SVN-Server starten: svnserver start Mit dem SVN-Client "TortoiseSVN" für Windows können Sie von außerhalb auf Ihr Repository zugreifen, dieses auszuchecken und die veränderte Version auf dem Server speichern. Sobald Sie TortoiseSVN installiert haben erstellen Sie einen Ordner mit der Bezeichnung projekt1 (in unserem Fall unter c:\projekt1). Klicken die mit der rechten Maustaste auf diesen Ordner und wählen Sie ![]() Die URL des Repository setzt sich folgendermaßen zusammen: svn://Ihre_IP-Adresse:3+Ihre_Kundennummer/repository
Hinter Ihre IP-Adresse müssen Sie einen Doppelpunkt (:) setzen, gefolgt von Ihrem svnserve-Port. Dieser besteht aus einer 3+ Ihrer Kundennummer. Haben Sie z.B. die Kundennummer 5023 lautet Ihr Port: 35023Der letze Teil Ihrer URL gibt das Repository an, in unserem Fall "projekt1". Die vollständige URL könnte also wie folgt lauten: svn://80.83.113.250:35023/projekt1 Ein Klick auf den OK-Button initiert das Auschecken Ihrer Daten und erzeugt eine Arbeitskopie auf Ihrem Computer im Verzeichnis c:\projekt1. ![]() Möchten Sie Ihre Änderungen speichern können Sie den Ordner projekt1 anwählen und durch einen Rechtsklick folgenden Menüpunkt erreichen. ![]() Haben Sie diesen ausgewählt werden Sie gebeten Ihrem Commit eine Nachricht anzuheften. Im Anschluss werden Sie nach einem Benutzernamen sowie einem Passwort gefragt:
Hier geben Sie als Benutzer foo und als Passwort bar ein und bestätigen durch einen Klick auf die OK-Taste.
Fertig! Jetzt werden alle Veränderungen der Daten auf dem Server gespeichert und stehen anderen Personen zur Verfügung. Auf der offiziellen Homepage von Subversion finden Sie weitere Informationen http://subversion.tigris.org/ |


Hinter Ihre IP-Adresse müssen Sie einen Doppelpunkt (:) setzen, gefolgt von Ihrem svnserve-Port. Dieser besteht aus einer 3+ Ihrer Kundennummer. Haben Sie z.B. die Kundennummer 5023 lautet Ihr Port: 35023

Hier geben Sie als Benutzer foo und als Passwort bar ein und bestätigen durch einen Klick auf die OK-Taste.