Subversion, kurz svn, ist das neue cvs. Es ist höher, schneller und weiter als cvs. In einem Subversion-Repository speichert man üblicherweise Quellcodedateien ab. Man checkt sie zum Bearbeiten dann aus dem Repository aus und kopiert sie dabei auf seine lokale Maschine. Hat man fertig gecodet, comitted man die Änderungen (und nur die Änderungen!) mit einem Knopfdruck wieder ins Repository.
Der Vorteil ist, das nicht nur der aktuelle Code für alle im Team im Repository zu finden ist, sondern dass alle alten Versionen auf Knopfdruck wieder zur Verfügung stehen.
SVN ist für einen ernstzunehmenden Programmierer unerlässlich, vor allem wenn man im Team arbeitet!
Wir wollen mit SVN gleich zwei Schnippchen schlagen:
Zum einen wollen wir unseren Code dort sicher verwalten und
zum anderen wollen wir automatisiert aus dem Repository heraus auf die Liveumgebung unseres Webservers deployen (dafür benutzen wir Capistrano).
SVN installieren
Wir loggen uns mit unserem SSH-Account auf dem Domainfactory-Server ein. Da die Server mit einem Gentoo-Linux laufen und es dafür keine fertigen Builds gibt, werden wir uns unser Subversion selbst kompilieren müssen. Dafür besorgen wir uns das neueste Release sowie seine Dependencies:
wget subversion.tigris.org/downloads/subversion-1.4.6.tar.bz2
wget subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.bz2
und entpacken es:
tar xfvj subversion-1.4.6.tar.bz2
tar xfvj subversion-deps-1.4.6.tar.bz2
Jetzt sagen wir SVN wohin wir es installieren wollen und konfigurieren es:
cd svn
./configure --prefix=/kunden/12345_12345/bin/svn
Nachdem ein ganzer Haufen von Echos über den Bildschirm gesaust sind, bereiten wir die Kompilation mit dem knackigen Befehl
make
vor. Es ist darauf zu achten, dass wir uns im Pfad /kunden/12345_12345/svn/ befinden. Einen weiteren Haufen Echos später, können wir endlich kompilieren:
make install
Es kann sein, dass im Rahmen dieser ganzen Ausgabe eine Fehlermeldung dabei sei, wir hätten keine Datenbank installiert, das ist aber okay so, denn SVN hat bereits eine Flatfile-DB dabei.
Nach der Installation fügen wir das SVN-Verzeichnis noch unserer berühmten $PATH-Variable zu, damit wir auch von üerall aus darauf zugreifen können:
export PATH=$PATH://kunden/12345_12345/bin/svn/bin
Mit folgenden beiden Befehlen können wir unser Tun überprüfen:
echo $PATH
which svnserve
Beide sollten uns den Pfad zum SVN ausgeben.
Repository anlegen
Nun wollen wir auch einen Platz für unsere Daten haben. Dazu legen wir ein Repository an:
mkdir /kunden/12345_12345/svn-repository
svnadmin create /kunden/12345_12345/svn-repository
Fertig!
Mein erster Checkout
Um SVN unter Windows nutzen zu können, empfehle ich TortoiseSVN. Damit Tortoise weiß, wo das Repository liegt, können wir ihm einen eigenen SSH-Account an die Hand geben. Wir legen diesen bequem im Kundenmenü von Domainfactory an.
Wichtig: Bitte als Shell die BASH angeben!
Nun basteln wir uns folgenden Pfad, bestehend aus den beiden Protokollen, die wir nutzen wollen, dem SSH-Account und unserem SV-Repository zusammen:
svn+ssh://ssh-12345-account@svn.domain.de/kunden/12345_12345/svn-repository/projekt
Damit können wir jetzt Dateien einchecken, auschecken und updaten.
Viel Spaß!
P.S.: Informationen zur Anwendung TortoiseSVN gibt’s kompetent per F1.