CVS-Repositories nach Subversion umziehen

Um den Wechsel von CVS auf Subversion leichter zu machen, gibt es das Tool CVS2SVN. Das Tool ist in Python geschrieben und benötigt einen aktuellen Interpreter. Daneben benötigt man entweder “co” von RCS oder einen CVS-Client. In meinem Fall (Portierung von CVSNT) hat es nur mit dem CVS-Client funktioniert. Ferner benötigt man das GNU-Tool sort (die Windows-Version gibt es in den Unxutils).

Eigentlich portiert CVS2SVN Repositories einzeln und komplett. Dabei entsteht für jedes Repository nur ein Trunk/Branches/Tags. Möchte man das ganze nach Modulen gegliedert, muss man diese einzeln konvertieren. Dazu holt man die Module einzeln aus den Repositories, kopiert sie an ein sicheres Plätzchen und erstellt jeweils im Modul-Verzeichnis einen Ordner namens “CVSROOT”, damit CVS2SVN das Modul als richtiges Repository anzusehen bereit ist.

Jetzt geht’s los. Zuerst erstellt man aus dem jeweiligen Modul ein Dumpfile:

cvs2svn.py –use-cvs –dump-only c:\temp\mymodule

In dem aktuellen Ordner entsteht daraufhin eine Datei namens “cvs2svn-dump”. Diese Datei gilt es nun in SVN zu importieren. Dazu muss man an der entsprechenden Stelle im SVN-Repository zuerst ein Verzeichnis anlegen und einchecken (Im Beispiel: “neuesprojekt” - ich habe das bei meinen paar Modulen einfach mit TortoiseSVN gemacht). Anschließend kann man mit svnadmin den Import starten:

svnadmin –parent-dir unterverzeichnis/neuesprojekt load C:\pfad\zum\repository < cvs2svn-dump

Wenn alles glatt geht - was für meine Module der Fall war - hat man kurz darauf die kompletten CVS-Versionen im SVN-Repository. Cvs2svn berücksichtigt dabei auch Tags und Branches und sorgt dafür, dass die entsprechenden Verzeichnisse unter dem Projektverzeichnis (im Beispiel: “neuesprojekt”) entstehen.

1 Comment


  1. [...] Anleitung basiert auf Markus Renschler’s [...]

    Quote | Posted 10.03.2007, 20:20

Leave a reply