Ordentliche Buchführung
Mit CVS oder Subversion Quelltexte verwalten
SVN im Netz
Eine Versionsverwaltung dient häufig als zentrale Anlaufstelle für ein Entwicklerteam. Es gibt daher viele Möglichkeiten, das Repository im Netz bereitzustellen. Das Paket SVN bringt mit svnserve bereits einen einfach zu konfigurierenden Netzwerkdienst mit. Alle erforderlichen Einstellungen nehmen Sie in den Dateien conf/svnserve.conf und conf/passwd vor. Eine svnserve.conf mit dem Inhalt aus Listing 5 erlaubt nur den in passwd (Listing 6) festgelegten Usern einen Zugriff auf das Repository. Nach dem Start von svnserve -d können Sie in SVN-Befehlen als Pfad zum Repository svn://Rechner
/lokaler
/Pfad
/zum
/Repository
angeben.
Listing 5
### conf/svnserve.conf [general] password-db= passwd realm = example realm ### eine Art "Namespace" anon-access = none ### für anonymen Lesezugriff: "read" auth-access = write
Listing 6
### conf/passwd [users] user = secret ### User / Passwort user2 = secret2 ### User / Passwort
svnserve erlaubt auch das Tunneln der Verbindung über Ssh und bietet damit eine abhörsichere Verbindung (Anleitung, englisch: [11]). Außerdem gibt es eine Reihe von Weboberflächen, mit denen sich der Inhalt des Repositorys im Webbrowser anzeigen lässt: CVSWeb (für CVS), ViewCVS (für CVS und Subversion) und WebSVN (für Subversion, Abbildung 4). Letzteres erzeugt sogar RSS-Feeds.
Und CVS?
SVN liegt seit Februar 2004 in einer stabilen Version vor. Der Umstieg von CVS fällt leicht, da SVN die meisten Befehle unverändert übernimmt. SVN bietet gegenüber dem Open-Source-Urgestein CVS eine Reihe Vorteile: Dateien lassen sich umbenennen und verschieben, und SVN ist sicherer und effektiver im Umgang mit Binärdateien. Zudem funktioniert der commit-Vorgang bei Subversion atomar: Dies bedeutet, dass er entweder vollständig oder gar nicht durchgeführt wird. Besonders bei Commits über das Netzwerk bietet dies zusätzliche Sicherheit.
Wer trotzdem noch CVS benutzt, tut dies aus Tradition oder aus ganz speziellen Bedürfnissen: CVS Repositorys benötigen weniger Speicher und obwohl Subversion als ausgereift gilt, sagt man CVS noch einen Tick mehr Stabilität nach.
Weitere Informationen zum Thema Versionsverwaltung bieten die Bücher [12], [13] und [14], eine ausführliche Anleitung zu SVN finden Sie online unter [15]. Zwei Artikel in LinuxUser 05/2005 liefern eine Einführung in die Versionskontrolle [16] und das handliche Versionskontrollsystem RCS [17].
Glossar
Versionsverwaltung
Eine Datenbank, die hilft, den Überblick über unterschiedliche Versionen vieler Dateien zu bewahren. Alle Version außer der gerade zu bearbeitenden bleiben dabei im Repository versteckt. Ein Commit überträgt die Änderungen ins Repository, ein Update fördert die Änderungen anderer Teammitglieder zutage. Ganz zu Beginn des Arbeitszyklus mit der Versionsverwaltung steht entweder ein Checkout, der alle Dateien aus einem Repository für die Bearbeitung in ein Arbeitsverzeichnis kopiert, oder ein Import, der bereits existierende Dateien unter die Kontrolle der Versionsverwaltung stellt.
Binärdateien
Dateien, die nicht aus durch Zeilenumbrüchen markierten Textzeilen bestehen. Das zeilenweise Übereinanderlegen synchroner Änderungen, das SVN und CVS bei Textdateien vornehmen, funktioniert bei ihnen nicht.
Infos
[1] CVS-Homepage:http://www.nongnu.org/cvs
[2] SVN-Homepage:http://subversion.tigris.org
[3] Kdesvn auf kde-apps.org: http://www.kde-apps.org/content/show.php?content=26589
[4] Diff-Ausgabe von SVN: http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html#svn.tour.cycle.examine.status
[5] Ksvn (Konqueror-Plugin): http://ksvn.sourceforge.net
[6] Esvn: http://esvn.umputun.com
[7] Qsvn: http://ar.oszine.de/projects/qsvn
[8] Jsvn-Homepage: http://jsvn.alternatecomputing.com/
[9] Subversive: http://www.polarion.org/p_subversive.php
[10] Subclipse-Plugin: http://subclipse.tigris.org/
[11] SVN über SSH tunneln: http://svnbook.red-bean.com/nightly/en/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.sshauth
[12] CVS-Einführung: Frank Budszuhn, "CVS", Galileo Press 2005, ISBN 3-89842-705-6
[13] Subversion-Einführung: Frank Budszuhn, "Subversion", Galileo Press 2005, ISBN 3-89842-603-3
[14] Linux-Handbuch: Plötner/Wendzel, "Linux", Galileo Press 2006, ISBN 3-89842-677-7
[15] Subversion-Buch online: http://svnbook.red-bean.com/nightly/en/index.html
[16] Grundlagen der Versionskontrolle: Oliver Frommel, "Änderungen festhalten", LinuxUser 05/2006, S. 60, http://www.linux-user.de/ausgabe/2006/05/060-versionskontrolle/
[17] RCS: Andreas Kneib, "Check In – Check Out", LinuxUser 05/2006, S. 62



