Die Umstellung der TYPO3-Quellcoderevision von CVS auf SVN: SVN statt CVS
Seit den Anfängen von TYPO3 bis ungefähr Mitte Oktober 2003 fand eine Verwaltung der verschiedenen Revisionen des TYPO3-Quellcodes lediglich auf der Festplatte von Kasper Skårhøjs Computer statt.
Im Rahmen der Weiterentwicklung von TYPO3 wurde aber schnell deutlich, dass man die Entwicklung so nicht skalieren konnte. Die Hauptlast der Entwicklung lag immer noch auf Kaspers Schultern, gleichzeitig war es mit einem Revisionskontrollsystem „von Hand“ schwierig, zusätzliche Entwickler mit Aufgaben zu betrauen.
Das Concurrent Versions System (CVS) sollte die Revisionskontrolle des TYPO3-Quellcodes übernehmen. Die Bereitstellung eines über das Internet erreichbaren CVS-Servers sowie die Rechteverwaltung der Schreibzugriffe auf den TYPO3-Quellcode wurde Sourceforge überlassen. Dort gab es bereits seit einiger Zeit ein Projekt namens „TYPO3“, das nun eine konkrete Nutzung erfuhr. Ein weiteres Anliegen für die zukünftige Entwicklung von TYPO3 war, Entwicklern von TYPO3-Erweiterungen eine ähnliche Infrastruktur zu geben, sodass mehrere Entwickler gemeinsam an TYPO3-Erweiterungen arbeiten konnten.
Schon zum Zeitpunkt der Einführung von CVS bei TYPO3 gab es mit Subversion (SVN) die ersten frühen Versionen einer anderen Software zur Revisionskontrolle von Quellcodes. Subversion war angetreten die Nachfolge von CVS zu übernehmen. Die Liste der geplanten Features und die Tatsache, dass einige der CVS-Entwickler bei Subversion von Anfang an mit an Bord waren, machte Subversion zu einer guten Alternative. Da der CVS-Dienst von Sourceforge zur Verfügung gestellt wurde, gab es zunächst keine Möglichkeit, zusätzlich Subversion für die Verwaltung des TYPO3-Quellcodes zu verwenden. Bedingt durch die organisatorische Größe von Sourceforge ließ sich ein neuer Dienst für Entwickler nicht über Nacht anbieten. Gegen Ende 2005 wurde endlich ein SVN-Dienst für registrierte Projekte angeboten. Da die Entwicklung von TYPO3 Version 4.0 zu dieser Zeit die gesamte Aufmerksamkeit des Core-Teams beanspruchte, konnte eine Umstellung von CVS zu SVN erst zu einem späteren Zeitpunkt durchgeführt werden.
Bei der Nutzung von CVS traten über die Jahre immer wieder Unzulänglichkeiten zu Tage. Diese versprach Subversion aufzuräumen:
- Versionierung von Verzeichnissen
- Vollständige Versionshistorie
- Atomare Commits.
- Versionerung von Binärdaten
- Verbesserte Datenübetragung
Alles in allem sind das sehr überzeugende Gründe, warum innerhalb von TYPO3 eine Umstellung von CVS zu Subversion erfolgen sollte. Am 21. Juni 2006 wurde für die Projekte TYPO3 und TYPO3xdev bei Sourceforge ein Migrationsplan auf den entsprechenden Mailinglisten vorgestellt und diskutiert.
Migrationsplan
- Überschreitung der Quota auf dem Shell Service bei SF.net ankündigen
- Development Freeze
- Aufheben der CVS Schreibberechtigung
- Sicherung des CVS Repositorys mit Rsync
- SVN Dienst auf SF.net akivieren
- SVN Dumps für die einzelnen Module erzeugen
- Import der SVN Dumps in lokales SVN Repository
- Analyse der Log Daten
- SVN Dump des lokalen SVN Repositorys erstellen
- Hochladen des SVN Dumps zu SF.net Shell Service
- Import des SVN Dumps mit SF.net Migrations Service
- Warten auf Rückmeldung des SF.net Migrations Service
- Freigabe der SVN Schreibberechtigung
Nachdem die Diskussionen über den Ablauf der Migration beendet waren stand fest, dass am 1. Juli 2006 die CVS Repositories von TYPO3 und TYPO3xdev nach Subversion migriert würden. Gegen 10 Uhr wurden alle von der Migration betroffenen Entwickler noch einmal darauf hingewiesen, dass um 12 Uhr mittags die Migration mit der Phase „Development Freeze“ anläuft.
Die Konvertierung der CVS-Repositories in SVN-Dumps mit dem Programm „cvs2svn“ verlief nahezu problemlos. Der erste Versuch, die einzelnen SVN-Dumps durch das Sourceforge-Migrations-Interface mit Angabe eines Zielverzeichnisses innerhalb des Repositorys zu importieren, schlug jedoch ohne eine genau bezeichnete Ursache fehl. Aus diesem Grund wurden die SVN-Dumps der einzelnen Module in Schritt sieben des Migrationsplans in ein lokales SVN-Repository importiert, um anschließend in Schritt neun einen SVN-Dump des gesamten Repositorys zu erstellen.
Der Import des neu erstellten SVN-Dumps mit dem von Sourceforge bereitgestellten Migrations-Interface verlief nun ohne Probleme. Nachdem von Sourceforge die Meldung vorlag, dass der Import der SVN-Dumps erfolgreich war, wurde allen Entwicklern der beiden Projekte TYPO3 und TYPO3xdev Schreibberechtigung auf das Subversion-Repository erteilt. Somit konnte die Migration des CVS-Repositorys zu Subversion am späten Nachmittag des 2. Juli 2006 erfolgreich beendet werden.