news, hacks, programme, logs,
tipps und tricks rund um das internet

Artikel / Tipps und Tricks  
Subversion on Linux - Migration von CVS auf Subversion

Dieser Artikel dokumentiert die Migration von CVS nach Subversion.

Concurrent Versioning System (CVS) ist ein beliebtes Tool in der Open Source Szene, welches verteiltes Entwickeln ermöglicht. Dabei verwaltet CVS die verschiedenen Versionen der Entwickler und bietet die Möglichkeit mehrere Versionen eines Programms gleichzeitig zu entwickeln. So kann ein Entwickler an einem neuen Release arbeiten, während ein anderer Entwickler an einem maintenance Release arbeitet.

Subversion ist ebenfalls so ein System, welches das CVS abzulösen versucht. Dabei verspricht Subversion besser zu sein mit vielen neuen Features, die CVS nicht hat.

Autor: tom - Date: 10.19.2004 - Size: 6096 chars - Hits / Day: 6.29 - Total Hits: 16040
image103.png
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/
 Home
Artikel / Tipps und Tricks
Artikel Navigation
Internes
0 Artikel
    Links and Friends
    5 Links
    Artikel erscheinen ungefähr jeden Monat in unregelmässigen Abständen.

    RSS-feed: rss.xml
    Nope bietet keinerlei Garantie für die auf dieser Seite enthaltenen Tipps, Artikel und Programme. Für Schaden, der aus der Anwendung der hier enthaltenen Daten entsteht, übernehmen wir keine Haftung. Die Nope Homepage enthält Links zu anderen Seiten auf deren Inhalte wir keinen Einfluss haben. Wir übernehmen keine Verantwortung für fremde Inhalte und distanzieren uns ausdrücklich davon.© nope.tv. Die Artikel auf dieser Seite, soweit nicht anders im Artikel erwähnt, stehen unter CreativeCommons License. Die Programme auf dieser Seite, soweit nicht anders im Artikel oder Programm erwähnt, stehen unter der GNU Public License (GPL).