Ist git mit cvs schneller als cvs alleine?

8

Mein Team arbeitet an einem Projekt in cvs, das etwa 20.000 Java-Dateien enthält. Aufgrund der Anzahl der Dateien dauert es einige Zeit, um ein cvs-Update durchzuführen. Normalerweise behalte ich etwa 5 Kopien des gesamten ausgecheckten Baums, um das Einchecken verschiedener Anfragen zu erleichtern, ohne sich Gedanken darum machen zu müssen, welche Dateien für jede Datei geändert wurden. Es ist ein großer Schmerz, alle fünf Bäume auf dem neuesten Stand und synchron zu halten.

Ich habe gelesen, dass es ziemlich einfach ist, Git lokal mit einem Remote-CVS-Server zu benutzen, und dieser Git ist schnell. Wird Git die Aktualisierung meiner lokalen Bäume erheblich beschleunigen?

Ich erkenne, dass die untere Grenze die Zeit ist, ein cvs-Update zu machen. Aber ich denke, sobald der erste Baum auf dem neuesten Stand ist, könnte es möglich sein, schnell die anderen 4 mit dem ersten zu synchronisieren, anstatt 4 weitere cvs update Befehle zu machen. Verstehe ich Git richtig?

    
Craig P. Motlin 26.11.2008, 15:56
quelle

2 Antworten

8

Ich benutze Git als Subversion-Client in einem großen Projekt (in der Größenordnung von 10k-Dateien). Git ist schnell, sehr schnell. Es ist so schnell, dass ich nur einen funktionierenden Klon bewahre und zwischen Feature-Zweigen innerhalb desselben Klons wechsle. Wie du, wenn ich Subversion benutzte, würde ich zwei oder drei ähnliche Checkouts haben und würde zwischen ihnen regelmäßig wechseln, da ich mehrere Dinge gleichzeitig ausgeführt hatte. Manchmal war es ziemlich verwirrend. Mit den Funktionen von Git wie leichtgewichtigen Zweigen, dem Stash und "git add -p" finde ich, dass ich nicht mehr mehrere Checkouts benötige. Ich kann alles in einem Verzeichnis machen und mich nicht so sehr Sorgen um den Verlust von Änderungen machen, die ich entweder vergessen oder versehentlich überschrieben habe.

Ich habe Git nicht mit CVS benutzt, aber wenn seine Integration etwas wie git-svn ist, dann wird das kein Problem sein.

    
Greg Hewgill 27.11.2008, 18:11
quelle
10

Wir machen etwas ähnliches bei der Arbeit. Wir verwenden den Zweig master in git grundsätzlich als eine einzige aktualisierte CVS-Version des Codes. Wir machen dort keine Entwicklung, nur CVS Updates. Alle unsere Entwicklungsprojekte finden dann in Featurebranchen statt, die wir neu erstellen. Wenn wir CVS-Updates für den Zweig master durchführen, werden diese Änderungen an master übergeben und dann unsere anderen Entwicklungszweige gegen master rebasen.

Es ist nicht ideal - es macht den Austausch mit anderen Menschen schwierig. Aber wir können mehrere Entwicklungsprojekte gleichzeitig verwalten und Verzweigungen, Verschmelzungen und Differenzen ganz einfach durchführen. Und wir interagieren nur bei Bedarf mit CVS im Zweig master .

    
Pat Notz 26.11.2008 17:04
quelle

Tags und Links