Der Wechsel eines Versionskontrollsystems

Der Wechsel von einem Versionskontrollsystem zu einem anderen kann sich als recht aufwändig erweisen, da man sich einerseits erst einmal mit dem neuen System vertraut machen und andererseits versuchen muss, möglichst viel von den historischen Projektinhalten auf das neue System zu übertragen. Bei der Konvertierung von CVS zu Subversion stellt sich dieses Problem natürlich auch und es gibt eine ganze Reihe möglicher Lösungen dafür: Entweder kann man die historischen Projektinhalte wie im CVS gespeichert aufgeben, das CVS-Repository mit Lesezugriff für die historischen Inhalte bereitstellen und das Subversion-Repository ganz neu anlegen, oder man kann versuchen, das CVS-Repository mit allen dazugehörigen historischen Inhalten in Subversion zu importieren.

Die letztere Option ist natürlich zu bevorzugen, aber gleichzeitig auch schwieriger durchzuführen. Erfreulicherweise gibt es verschiedene Tools hierfür, so zum Beispiel cvs2svn, ein Programm, das den Import alter CVS-Projekte und deren historischer Inhalte in ein Subversion-Repository versucht. cvs2svn steht unter http://cvs2svn.tigris.org als Download zur Verfügung.

Nach dem Herunterladen von cvs2svn muss man das Programm entpacken. Dann macht man eine Kopie vom cvsroot-Verzeichnis, denn obwohl cvs2svn am eigentlichen CVS-Repository nichts verändert, ist es für alle Fälle sicherer, mit einer Kopie zu arbeiten.

Das funktioniert zum Beispiel mit folgenden Befehlen:


Wenn man nur ein einzelnes Modul importieren möchte, kann man auch nur /cvsroot/project kopieren, statt eine Kopie vom gesamten cvsroot-Verzeichnis mit allen seinen Modulen zu machen. Dann führt man cvs2svn auf der Kopie von cvsroot aus und erstellt ein Dumpfile für den Import in Subversion:


So wird die Datei cvs2svn-dump im aktuellen Verzeichnis erstellt. Nun kann man das Dumpfile in ein bestehendes Subversion-Repository kopieren:


Somit hat man sein Projekt mit allen dazugehörigen historischen Dateien importiert. Oben stehender Vorgang eignet sich vor allem, wenn man über ein bestehendes Subversion-Repository verfügt und jeweils nur ein einzelnes Modul oder einige wenige Module importieren will. Will man dagegen das gesamte cvsroot in eine neue Subversion-Datenbank überführen, kann man wie folgt vorgehen:


Damit wird das gesamte cvsroot-Verzeichnis mit allen seinen historischen Inhalten in das neue Subversion-Repository importiert. Je nachdem, wie groß das CVS-Repository ist (und wie viel historische Inhalte es umfasst), kann das eine ganze Weile dauern.

ZDNet.de Redaktion

Recent Posts

Google stopft schwerwiegende Sicherheitslöcher in Chrome 124

Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…

1 Tag ago

Studie: 91 Prozent der Ransomware-Opfer zahlen Lösegeld

Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…

1 Tag ago

DMA: EU stuft auch Apples iPadOS als Gatekeeper ein

Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…

1 Tag ago

Chips bescheren Samsung deutlichen Gewinnzuwachs

Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…

2 Tagen ago

Chrome: Google verschiebt das Aus für Drittanbietercookies

Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…

2 Tagen ago

BAUMLINK: Wir sind Partner und Aussteller bei der Frankfurt Tech Show 2024

Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…

2 Tagen ago