
Eclsipe Subversion Browse
Die verwendeten Rechner bei der Migration sind auf der Serverseite Debian Sarge (x86) und auf der Clientseite Fedora Core 2 (x86) mit Eclipse 3.0.1 als Client Applikation. Dabei soll Subversion genauso komfortabel aus der IDE bedient werden wie CVS.
Die Installation des Programms ist relative einfach. Bei den meisten Distributionen genügt die Auswahl des Subversion Paketes und die Software wird installiert. In diesem Fall wird Subversion auf dem Debian Server mit folgendem Befehl installiert:
apt-get install subversion
Das Ziel ist es ebenfalls von Eclipse aus auf das Repository zuzugreifen. Dazu muss man Subversion auch auf dem Client installieren, wenn man es vergisst, dann gibt es haufenweise Exceptions im File workspace/.metadata/.log. Mit Fedora kann man ebenfalls mit apt-get oder auch mit yum Subversion installieren.
Als nächstes wird das Plugin für Eclipse installiert. Dazu wird im Menu von Eclipse (Help -> Software Updates -> Find and Install -> New Features -> New Remote Site) die URL http://subclipse.tigris.org/update eingeben und das Plugin installieren. Wer Probleme mit den Rechten hat, kann das Plugin als root installieren.
Es gibt 2 Möglichkeiten wie man das Repository verwalten will, entweder mit Apache2 und WebDAV oder mit svnserve. Ich habe mich für das Letztere entschieden da ich noch Apache1 verwende und die Installation einiges schwierigerer ist. Svnserve kann per ssh angesteuert werden und man benötigt bloss ein login auf dem Rechner. Der Link http://svnbook.red-bean.com/svnbook-1.0/ch06.html zeigt den Unterschied der beiden Methoden. Für die Migration ist es nicht notwendig ein Repository zu erstellen, wer keine Daten zu migrieren hat, kann mit dem folgenden Befehl ein leeres Respository erstellen:
svnadmin create /var/lib/subversion
Die Daten von CVS nach Subversion kann man mit dem Tool cvs2svn kopieren. Der Befehl installiert das Paket auf dem Server:
apt-get install cvs2svn
Die Dokumentation dazu gibt es auf http://cvs2svn.tigris.org/. Es ist wichtig mit einer KOPIE zu arbeiten!! (Vor allem wenn es wichtige Daten sind). Der folgende Befehl migriert die Daten:
cvs2svn -s /var/lib/subversion/ /var/lib/cvs
Gibt es schon ein Subversion Repository, können mit der Option --existing-svnrepos die Daten hinzugefügt werden. Das einzige Problem mit dem Kopieren waren doppelte Einträge im Attic. Da aber die Files im Attic den Status 'dead' haben, habe ich sie gelöscht.
Der Server wird mit inetd gestartet, welches die folgende Zeile im File /etc/indetd.conf benötigt:
svn stream tcp nowait svnowner /usr/local/bin/svnserve svnserve -i -r /var/lib/subversion/
Die Option -r (--root) gibt an, dass dieses Verzeichnis als Root verwendet wird und die URL zum Repository relativ zu diesem Verzeichnis ist. Der Benutzer svnowner muss ebenfalls noch erstellt werden, welches mit adduser gemacht werden kann. Es ist ratsam eine Gruppe einzurichten welches auf das Repository zugreifen kann. Damit inetd auch weiss, um welchen Service oder um welchen Port es sich handelt, fügt man die folgende Zeilen ins /etc/services hinzu:
svn 3690/tcp # Subversion
svn 3690/udp # Subversion
Mit diesem Befehl startet man den Service:
/etc/init.d/inetd restart
Jetzt ist die Migration abgeschlossen und man ist bereit, um auf das Subversion Repository zuzugreifen. Die URL zum Repository lautet svn://127.0.0.1. Ist die -r Option im inetd.conf nicht angegeben, dann lautet die URL svn://127.0.0.1/var/lib/subversion. Dieser Zugriff ist read-only, möchte man nun mit der ssh Authentifizierung arbeiten, muss man die URL folgendermassen ändern: svn+ssh://127.0.0.1/var/lib/subversion.
Links und gute Dokumentationen
http://svnbook.red-bean.com/svnbook-1.0/index.html
http://subversion.tigris.org/
http://subclipse.tigris.org/