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

Automatic SEO macht SEO günstiger und besser: Was steckt dahinter?

Suchmaschinenoptimierung (SEO) ist ein zentraler Faktor für den nachhaltigen Erfolg im digitalen Wettbewerb. Sie generiert…

21 Minuten ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

16 Stunden ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

2 Tagen ago

Bedrohungen in Europa: Schwachstellen in der Lieferkette dominieren

Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…

2 Tagen ago

Bericht: Apple arbeitet an faltbarem iPad

Es kommt angeblich 2028 auf den Markt. Das aufgeklappte Gerät soll die Displayfläche von zwei…

3 Tagen ago

HPE baut Supercomputer am Leibniz-Rechenzentrum

Das System basiert auf Hardware von HPE-Cray und Nvidia. Die Inbetriebnahme erfolgt 2027.

3 Tagen ago