Nachdem ich gelesen habe, dass ich ein Subversion-Freak bin, warum sollte ich Mercurial oder Git oder ein anderes DVCS in Betracht ziehen oder nicht .
Ich habe eine verwandte Folgefrage. Ich habe diese Frage gelesen und die empfohlenen Links und Videos gelesen. Ich sehe die Vorteile, aber ich sehe nicht, dass die Leute über die allgemeine Bewusstseinsveränderung sprechen.
Unser Team besteht aus 8-10 Entwicklern, die an einer großen Codebasis aus 60 Projekten arbeiten. Wir benutzen Subversion und haben einen Hauptstamm. Wenn ein Entwickler einen neuen Fogbugz-Fall startet, erstellt er eine SVN-Verzweigung, bearbeitet die Verzweigung und führt sie anschließend zum Stamm zurück. Gelegentlich bleiben sie längere Zeit auf dem Zweig und führen den Stamm mit dem Zweig zusammen, um die Änderungen zu übernehmen.
Als ich sah, wie Linus über Leute sprach, die einen Zweig gründeten und ihn nie wieder machten, waren wir das überhaupt nicht. Wir erstellen wahrscheinlich 50-100 Filialen pro Woche ohne Ausgabe. Die größte Herausforderung ist das Zusammenführen, aber wir sind auch ziemlich gut darin geworden. Ich neige dazu, durch fogbugz case & checkin statt der gesamten Wurzel des Zweigs zusammenzuführen.
Wir arbeiten niemals remote und machen niemals Zweige aus Zweigen. Wenn Sie der einzige sind, der in diesem Abschnitt der Codebasis arbeitet, verläuft die Zusammenführung zum Trunk reibungslos. Wenn eine andere Person denselben Codeabschnitt geändert hat, kann die Zusammenführung problematisch werden, und Sie müssen möglicherweise eine Operation durchführen. Konflikte sind Konflikte. Ich verstehe nicht, wie ein System es die meiste Zeit richtig machen könnte, wenn es nicht schlau genug wäre, den Code zu verstehen.
Nach dem Erstellen einer Verzweigung dauert das Auschecken von mehr als 60.000 Dateien einige Zeit. Dies ist jedoch ein Problem bei allen Versionsverwaltungssystemen, die wir verwenden würden.
Gibt es einen Vorteil von DVCS, den wir nicht sehen, der uns sehr helfen würde?