Technik Mit Hilfe von Subversion die Arbeit erleichtern
Geschrieben von Markus in Administration & Coding am 22.09.2008 um 22:10 Uhr.
Seit dem ich Subversion nutze, arbeite ich merklich effizienter. Durch eine unkomplizierte Handhabung fallen keine überflüssigen Zwischenklicks mehr an. Der wohl größte Vorteil ist jedoch die Versionsverwaltung als solche. Versehntlich gelöschte Dateien lassen sich mit wenigen Klicks wieder herstellen und Änderungen, die unfindbare Fehler herbei führen, lassen sich rückgängig machen, ohne langes Suchen.
Zudem verwende ich die überaus nützlichen SVN Hooks, die standardmäßig bei jedem Repository mit erstellt werden und nur auf die Aktivierung warten. Dadurch erspare ich mir die Übertragung der geänderten Daten per FTP, da nach dem Commit automatisch das Repository auf dem Webserver geupdated wird.
In diesem Beitrag möchte ich einmal die Nutzung von SVN schmackhaft machen und von der Installation bis zur laufenden Website Schritt für Schritt die Einrichtung erklären.

1. Die Installation:
Der Einfachheit halber gehe ich mal von einer Installation via apt-get aus. Mit dem folgenden Befehl sollte die Installation schnell erledigt sein:
Als Nächstes legen wir ein Verzeichnis an, in dem die Repositories der einzelnen Projekte gespeichert werden sollen:
Um den SVN-Server zu starten, ist folgender Befehl notwendig:
Damit svnserve auf beim Neustart des Servers automatisch los rennt, sollte dieser Befehl in die Datei /etc/rc.local eingetragen werden.
Hinweis: Es gibt die Möglichkeit Subversion über einen SSH Tunnel laufen zu lassen. Die Anleitung hierzu folgt später.
2. Benutzer und Rechte:
Im Verzeichnis /var/svn legen wir nun zwei Dateien an, die eine nennen wir passwd und die andere authz.
Inhalt der Datei passwd, welche die Benutzer und ihre Passwörter beinhaltet
Inhalt der Datei auth, welche die Berechtigungen der Benutzer beinhaltet
3. Repository anlegen und Rechte anpassen:
Nun geht es schon ans Eingemachte. Wir legen das Repository für das erste Projekt an. Das geht mit folgendem Befehl:
Um auf die vorher erstellte Benutzer- und Rechteverwaltung zurückzugreifen, müssen wir die Kondigurationsdatei /var/svn/projekt1/conf/svnserve.conf des Repository anpassen. Dies ist nicht viel und braucht keine große Erklärung.
Inhalt der Datei svnserve.conf
Dieser Schritt kann beliebig oft durchgeführt werden, je nach dem, wie viele Repositories benötigt werden.
4. Verzeichnisstruktur bestimmen:
In diesem Schritt ist es ratsam die Verzeichnissturkur festzulegen. Ich erstelle dazu drei Ordner, wie auch im Subversion Buch vorgeschlagen wird. Diese Verzeichnisse heißen branches, tags und trunk. Der Ordner branches stellt die Entwicklungsumgebung da. In diesem Zweig können beliebig viele Entwicklungsrichtungen angelegt werden. Die Entwicklungsumgebung kann man beispielsweise unter dev.projektname1.de verfügbar machen und den Inhalt des Trunk-Ordners, also des Live-Systems entsprechend unter www.projektname1.de.
5. Repository auf dem Webserver auschecken:
Damit die Inhalte des Repository auch von Außen über den Webserver verfügbar gemacht werden können, müssen wir es zunächst ausschecken. Mit dem folgendem Befehl checken wir das Live-System aus:
Der Webserver vHost der Domain www.projektname1.de sollte dementsprechend auf das Verzeichnis /var/www/proejekt1/live zeigen.
Die Entwicklungsumgebung holen wir uns so:
Hier muss der vHost der Domain dev.projektname1.de auf das Verzeichnis /var/www/proejekt1/dev zeigen.
Nun haben wir schoneinmal die aktuelle Version des Repository als Website erreichbar gemacht. Damit nun auch alle Änderungen in Echtzeit zu übernehmen ist noch eine Anpassung notwendig.
6. Hook anpassen:
Wie anfangs erwähnt liefert Subversion sogenannte Hooks mit. Diese werden bei einer angestoßenen Aktion von Subversion automatisch ausgeführt. Wir konzentrieren uns hierbei vollkommen auf den post-commit, welcher im Verzeichnis /var/svn/projekt1/hooks zu finden ist.
In diesem Verzeichnis erstellen wir die Datei post-commit, mit folgendem Inhalt:
Dieser Datei geben wir sicherheitshalber die chmod Rechte 0777, damit sie auf alle Fälle nach jedem Commit ausgeführt wird.
Das war es auch schon, denn wenn man es einmal so eingerichtet hat, ist es auch keine Schwierigkeit mehr. Leider finden sich im Internet nur wenige Informationen über die Hooks und deren Einsatzmöglichkeiten, sodass vielen SVN-Nutzern diese hervoragenden Möglichkeiten verborgen bleiben. Sollten noch Fragen offen sein, oder Probleme auftreten, so helfe ich gerne weiter.
Zudem verwende ich die überaus nützlichen SVN Hooks, die standardmäßig bei jedem Repository mit erstellt werden und nur auf die Aktivierung warten. Dadurch erspare ich mir die Übertragung der geänderten Daten per FTP, da nach dem Commit automatisch das Repository auf dem Webserver geupdated wird.
In diesem Beitrag möchte ich einmal die Nutzung von SVN schmackhaft machen und von der Installation bis zur laufenden Website Schritt für Schritt die Einrichtung erklären.

1. Die Installation:
Der Einfachheit halber gehe ich mal von einer Installation via apt-get aus. Mit dem folgenden Befehl sollte die Installation schnell erledigt sein:
| code: | ||
|
Als Nächstes legen wir ein Verzeichnis an, in dem die Repositories der einzelnen Projekte gespeichert werden sollen:
| code: | ||
|
Um den SVN-Server zu starten, ist folgender Befehl notwendig:
| php: | ||
|
Damit svnserve auf beim Neustart des Servers automatisch los rennt, sollte dieser Befehl in die Datei /etc/rc.local eingetragen werden.
Hinweis: Es gibt die Möglichkeit Subversion über einen SSH Tunnel laufen zu lassen. Die Anleitung hierzu folgt später.
2. Benutzer und Rechte:
Im Verzeichnis /var/svn legen wir nun zwei Dateien an, die eine nennen wir passwd und die andere authz.
Inhalt der Datei passwd, welche die Benutzer und ihre Passwörter beinhaltet
| code: | ||
|
Inhalt der Datei auth, welche die Berechtigungen der Benutzer beinhaltet
| code: | ||
|
3. Repository anlegen und Rechte anpassen:
Nun geht es schon ans Eingemachte. Wir legen das Repository für das erste Projekt an. Das geht mit folgendem Befehl:
| code: | ||
|
Um auf die vorher erstellte Benutzer- und Rechteverwaltung zurückzugreifen, müssen wir die Kondigurationsdatei /var/svn/projekt1/conf/svnserve.conf des Repository anpassen. Dies ist nicht viel und braucht keine große Erklärung.
Inhalt der Datei svnserve.conf
| code: | ||
|
Dieser Schritt kann beliebig oft durchgeführt werden, je nach dem, wie viele Repositories benötigt werden.
4. Verzeichnisstruktur bestimmen:
In diesem Schritt ist es ratsam die Verzeichnissturkur festzulegen. Ich erstelle dazu drei Ordner, wie auch im Subversion Buch vorgeschlagen wird. Diese Verzeichnisse heißen branches, tags und trunk. Der Ordner branches stellt die Entwicklungsumgebung da. In diesem Zweig können beliebig viele Entwicklungsrichtungen angelegt werden. Die Entwicklungsumgebung kann man beispielsweise unter dev.projektname1.de verfügbar machen und den Inhalt des Trunk-Ordners, also des Live-Systems entsprechend unter www.projektname1.de.
5. Repository auf dem Webserver auschecken:
Damit die Inhalte des Repository auch von Außen über den Webserver verfügbar gemacht werden können, müssen wir es zunächst ausschecken. Mit dem folgendem Befehl checken wir das Live-System aus:
| code: | ||
|
Der Webserver vHost der Domain www.projektname1.de sollte dementsprechend auf das Verzeichnis /var/www/proejekt1/live zeigen.
Die Entwicklungsumgebung holen wir uns so:
| code: | ||
|
Hier muss der vHost der Domain dev.projektname1.de auf das Verzeichnis /var/www/proejekt1/dev zeigen.
Nun haben wir schoneinmal die aktuelle Version des Repository als Website erreichbar gemacht. Damit nun auch alle Änderungen in Echtzeit zu übernehmen ist noch eine Anpassung notwendig.
6. Hook anpassen:
Wie anfangs erwähnt liefert Subversion sogenannte Hooks mit. Diese werden bei einer angestoßenen Aktion von Subversion automatisch ausgeführt. Wir konzentrieren uns hierbei vollkommen auf den post-commit, welcher im Verzeichnis /var/svn/projekt1/hooks zu finden ist.
In diesem Verzeichnis erstellen wir die Datei post-commit, mit folgendem Inhalt:
| code: | ||
|
Dieser Datei geben wir sicherheitshalber die chmod Rechte 0777, damit sie auf alle Fälle nach jedem Commit ausgeführt wird.
Das war es auch schon, denn wenn man es einmal so eingerichtet hat, ist es auch keine Schwierigkeit mehr. Leider finden sich im Internet nur wenige Informationen über die Hooks und deren Einsatzmöglichkeiten, sodass vielen SVN-Nutzern diese hervoragenden Möglichkeiten verborgen bleiben. Sollten noch Fragen offen sein, oder Probleme auftreten, so helfe ich gerne weiter.









