# Migration CVS => SVN



## Vale (15. Feb 2008)

Hallo liebe EntwicklerInnen,

ich möchte demnächst *von CVS auf SVN *umstellen und will mich davor natürlich erst einmal informieren. Über die Gefahren, über Erfahrungen von Leuten die so etwas schon einmal gemacht ect. Darum bitte ich um eure Hilfe und bedanke mich schon im Voraus ganz herzlich dafür.

*1 - Vorab-Infos*

* Es geht um ca. 25 Projekte mit bis zu 10 Entwicklern.
* Hauptgrund für den Wechsel ist, dass CVS die Historie beim Verschieben von Dateien verliert.
* Alle verwenden Eclipse


*2 - Konverter cvs2svn*

Ich habe bis jetzt nur gelesen, dass dieses Tool dafür eingesetzt wird. Ist dies so, weil es das einzig kostenlose ist, oder ist es besonders gut? Ideal wäre es natürlich wenn es besonders gut ist.

Wie sehen eure Erfahrungen damit aus? Gibt es -kostenlose- Alternativen die besser sind?


*3 - Auf was ist bei der Durchführung zu achten?*

_Wie_ man cvs2svn bedient ist in diesem Bericht kurz beschrieben. Und ich hoffe auch vollständig.

Aber auf was gilt es eurer Erfahrung nach noch zu achten? Welche Vorbedingungen sollten geschaffen sein und welche Probleme können auftreten. Wenn es bei euch zu Komplikationen kam wüsste ich gerne wie ihr diese gelöst habt.


*4 - Warum ist SVN umstritten?*

Wie man bei Wikipedia kann ist Subversion umstritten:


> Da aber auch Subversion nicht frei von Problemen und teilweise umstritten ist, gibt es verschiedene Neu- oder Reimplementierungen von CVS, die Sicherheitsmängel beheben und mit anderen Verbesserungen aufwarten.


Quelle: Wikipedia CVS

Bei *wem *und *warum *ist Subversion umstritten? Ich konnte hier im Forum leider keine genaueren Anhaltspunkte dazu finden und bitte auch hier um eure Erfahrung und Meinung.


*5 - Subversive oder Subclipse*

Meine letzte Frage bezieht sich auf die beiden (mir bekannten) Eclipse-PlugIns Subversive und Subclipse.
Ist eines der beiden "besser" als das andere? Vor allem im Hinblick auf die von mir in _1 - Vorab-Info _genannten Punkte?

Oder sollte ich diese PlugIns lieber meiden und zu einem Externen Programm greifen?

*
6 - Seid ihr zufrieden?*

Mich würde noch interessieren ob ihr mit SVN zufrieden seid. Welche Erwartungen hatte ihr, warum wolltet ihr überhaupt wechseln und sind eure Erwartungen erfüllt worden.
Gab es neue Probleme, vermisst ihr etwas besonders oder was wollt ihr nie mehr missen?



Danke + Gruß.

_Edit: Punk 6 eingefügt._


----------



## maki (15. Feb 2008)

cvs2svn hat bei mir problemlos funktioniert und seitdem bin ich sehr glücklich mit Subversion, dauert nur ein bisschen länger als mit CVS.

Sowohl mit subclipse als auch mit subversiv gab es mit dem Verschieben von Ordnern Probleme, unter Windows nutze ich am liebsten den Tortouise SVN Client, der kann alles 

Das sind auch schon die einzigen Mankos an Subversion die ich kenne, Geschwindigkeit und Toolunterstützung.


----------



## Vale (15. Feb 2008)

maki hat gesagt.:
			
		

> cvs2svn hat bei mir problemlos funktioniert und seitdem bin ich sehr glücklich mit Subversion, dauert nur ein bisschen länger als mit CVS. [...]


Kannst du mir bitte genauer sagen was nun etwas länger dauert? Das Synchronisieren nehme ich mal an. Um welchen Faktor (geschätzt) ist es mit SVN langsamer als bei CVS?



			
				maki hat gesagt.:
			
		

> Sowohl mit subclipse als auch mit subversiv gab es mit dem Verschieben von Ordnern Probleme [...]


Welche Probleme waren das? Also was ist passiert?

Gruß Vale.


----------



## maki (15. Feb 2008)

Fast (!) alle Operationen (Commit,Update, Checkout) dauern länger, und zwar um einiges.
Was vorher ein paar Sekunden in CVS dauert kann mit SVN schon mal ein paar Minuten dauern.
Ausnahme: Branching und Tagging dauern nur Sekunden 
Aber dafür hat man in SVN "atomic" Commits, d.h. wenn irgendetwas fehlschlägt wird alles in den Ausgangszustand zurückversetzt.

Die Details zu den Problemen mit Ordnern ändern weiss ich jetzt nicht mehr, jedenfalls war die Aktion nicht von Erfolg gekrönnt und manchmal musste ich sogar "reverten" um zumindest mit TortouseSVN meine Änderungen zu committen.

Hatte erst vor ein paar Tagen einen Thread dazu eröffnet: http://www.java-forum.org/de/viewtopic.php?t=63500&highlight=subversion


----------



## Wildcard (15. Feb 2008)

Mit Subclipse habe ich persönlich sehr schlechte Erfahrungen gemacht. Subversive läuft bisher allerdings recht gut.


----------



## maki (15. Feb 2008)

Ich muss dazu sagen, dass das auf Eclipse 3.1 getestet habe, kann sein dass neuere Versionen besser sind, hab aber nach dem Umstieg auf Eclipse 3.2 nicht mehr getestet.


----------



## kama (20. Feb 2008)

Hallo,




			
				Vale hat gesagt.:
			
		

> *1 - Vorab-Infos*
> 
> * Es geht um ca. 25 Projekte mit bis zu 10 Entwicklern.
> * Hauptgrund für den Wechsel ist, dass CVS die Historie beim Verschieben von Dateien verliert.
> * Alle verwenden Eclipse


Die Anzahl der Projekt ist recht uninteressant. Hier ist viel mehr von Interesse:

* Wurde in CVS nur ein Repository verwendet? 
* Soll auch in SVN nur ein Repository Verwendung finden (halte ich für Angebracht). 
* Wie wurde bisher Backup gemacht ? 
* Ausfallsicherheit ?
* Unterschiedliche Standort ? (Multisite Ansatz?)
* Verschlüsselung?
* Sicherheitsanforderungen (Externer Zugriff?)
* Server Betriebssystem ?

* Wie groß ist das zu konvertierende CVS Respository? 
* Wurden Module in CVS verwendet? 
* Eventuell sogar Ampersamp-Module ?

Zu den Gründen kann ich nur auf diesen Vergleich verweisen.



			
				Vale hat gesagt.:
			
		

> *2 - Konverter cvs2svn*
> 
> Ich habe bis jetzt nur gelesen, dass dieses Tool dafür eingesetzt wird. Ist dies so, weil es das einzig kostenlose ist, oder ist es besonders gut? Ideal wäre es natürlich wenn es besonders gut ist.
> 
> Wie sehen eure Erfahrungen damit aus? Gibt es -kostenlose- Alternativen die besser sind?


Es ist realistisch der einzige Konverter der auch tatsächlich funktioniert und auch mit CVS Repositories jenseits von 500 MB noch funktioniert. 
* Mehrfach für Kunden CVS-Repos (5-25 GB) nach Subversion konvertiert.



			
				Vale hat gesagt.:
			
		

> *3 - Auf was ist bei der Durchführung zu achten?*
> 
> _Wie_ man cvs2svn bedient ist in diesem Bericht kurz beschrieben. Und ich hoffe auch vollständig.
> 
> Aber auf was gilt es eurer Erfahrung nach noch zu achten? Welche Vorbedingungen sollten geschaffen sein und welche Probleme können auftreten. Wenn es bei euch zu Komplikationen kam wüsste ich gerne wie ihr diese gelöst habt.


Der genannte Link zu cvs2svn dokumentiert nicht mal Ansatzweise die Funktionalität und die Möglichkeiten von cvs2svn. Ich empfehle die Doku von cvs2svn selbst.

Weiterhin empfehle ich eine Konvertierung mehrere male zu Testen. Das Options-File was als Example bei cvs2svn dabei ist unbedingt zu nutzen, damit man bei jedem Konvertierungstest auch wirklich Verbesserungen hat....

Wichtig ist zu beachten, dass man sich vor allem darüber im Klaren ist, wenn man hingeht und Projekt-Weise die Konvertierung durchführt der Zusammenhang zwischen der Zeit und der späteren Revisionsnummer im SVN-Repository verloren geht. Es ist zu Empfehlen, dass die Konvertierung des CVS-Repos auf einmal gemacht wird und dann an einem Bestimmten Termin zu SVN gewechselt wird.
Dafür sind die Test-Konvertierungen wichtig,damit man ungefähr weiß wie lange die Konvertierung auch tatsächlich benötigt (ich habe Konveriterungen gehabt die ca. 3-12 h gedauert haben).

Typische Probleme: In CVS wurden Tags und Branches gleich benannt...., Änderung direkt im Repos...



			
				Vale hat gesagt.:
			
		

> *4 - Warum ist SVN umstritten?*
> 
> Wie man bei Wikipedia kann ist Subversion umstritten:
> 
> ...


Es gibt einige technische Punkte (z.B. move ist durch copy und delete implementiert) und das Merge-Tracking fehlt nun mal bis dato noch. Aber mit 1.5 ist das ja auch erledigt.
Es gibt auch einige Zeitgenossen die behaupten, dass ein zentralisierter Ansatz der Falsche Weg ist. Da streiten sich aber die Geister. Für OpenSource ist das "eventuelle" ein Argument. Die Projekte die auf SVN umgeschwenkt sind, sprechen aber dagegen. Wenn man aber einen verteilten Ansatz oder z.B. Offline-Commits benötigt, dann kann man hier mit SVK weiter kommen...
Hier hätte man dann eventuell die Möglichkeit Mercurial, Bazaar oder Monotone oder gar GIT zu verwenden....




			
				Vale hat gesagt.:
			
		

> *5 - Subversive oder Subclipse*
> 
> Meine letzte Frage bezieht sich auf die beiden (mir bekannten) Eclipse-PlugIns Subversive und Subclipse.
> Ist eines der beiden "besser" als das andere? Vor allem im Hinblick auf die von mir in _1 - Vorab-Info _genannten Punkte?
> ...


Dabei wäre ein Frage. Du hast zwar geschrieben, dass Eclipse verwendet wird, aber wird denn auch überall die gleiche Version von Eclipse eingesetzt ? Das wäre meiner Meinung nach ein erster Punkt der in Angriff genommen werden sollte, das einheitlich die gleich Release von Eclipse eingesetzt wird und kein Release-Misch-Masch existiert....

Die Entscheidung Subversive/Subclipse hängt eigendlich nur daran, ob bestimmte technische Unterschiede hier ein Entscheidung herbeiführen können:

z.B.: Subversive produziert bei mehreren Eclipse-Projekten, die aus dem gleichen SVN-Repository stammen lediglich einenen Commit, Subclipse dagegen produziert hier pro Eclipse-Projekt einen checkin....
Ich persönlich ziehe bis dato Subversive vor.

EDIT: Auf keinen Fall ein externes Programm, wenn schon Eclipse Verwendung findet. Aber es ist durchaus Hilfreich so sachen wie TortoiseSVN, CLI  oder anderes Installiert zu haben.

Ein ganz wichtig Aspekt fällt mir zu letzt ein: Wird denn auch Java entwickelt oder C++, Perl etc. mit Eclipse....

Ach so noch so ein Thema: 
* Was ist mit dem Build Management und Release Management ? 
* Sind bis dato Build-Server eingesetzt worden ? (CruiseControl, Continuum, Luntbuild etc.) ?
* Ant Scripte? Maven 2 ?
* Oder eventuelle der Build per Eclipse?

Dann sind in diesem Bereiche auch noch Anpassungen bzw. Migrationsaufwände zu sehen und selbstverständlich auch zu machen...
Eventuell müssen hier Ant-Scripte und/oder Maven POM's angepasst werden....




			
				Vale hat gesagt.:
			
		

> *
> 6 - Seid ihr zufrieden?*


Ich habe 15 Jahre mit CVS gearbeitet, administriert und Installiert und habe (fast) alle Haken und Ösen kennen gelernt. Selbst CVS Administrator, Installation für verschiedenste Kunden gemacht...
Seit fast 5 Jahren Arbeite ich selbst mit Subversion, Administriere, Installieren und Berate Firmen bei der Migration von anderen Tools (ClearCase, PVCS, etc) nach Subversion. 

Ich selbst bin mit dem Umstieg bisher sehr zu frieden, da mir Subversion einfach Dinge bietet, die in CVS Teilweise garnicht möglich waren (move, cp) abgesehen von der Geschwindigkeit für bestimmte Dinge, Atomare Commits etc.
Wichtig für mich selbst war und ist vor allem die Tatsäche, das man im Zusammenhang mit Apache sehr einfach Authentifizierung von unterschiedlichen Quellen durchführen kann (LDAP,...etc.). Verschlüsselung (einfach Apache konfigurieren und fertig). In CVS war das ein Grauss....Tagging und Branching geschweige denn das Merging ....
Ok. Ein Nachteil bis dato ist noch da, Merge-Tracking.....aber mit 1.5....oder ich Verwende weiterhin SVK....

Ein Riesen Vorteil hat Subversion vor allem noch. Mithilfe von svnadmin dump / svnadmin load kann sehr einfach von einem Server (z.B. Windows) auf einen Anderen (z.B Unix) umziehen. Mit CVS ist das unmöglich....na ja und der Update von einer SVN Release auf die Andere geht damit auch sehr einfach....


MfG
Karl Heinz Marbaise


----------

