[SAGE-MUC] DVCS für System-Administration?

Olaf Radicke briefkasten at olaf-radicke.de
So Jun 6 14:12:27 CEST 2010


Am Sonntag 06 Juni 2010, 08:07:55 schrieb Marko Lorentz:
> Das ist so nicht ganz richtig. svn ist ein "medium scale"
> Version-Management. Es hat im professionellen Bereich - wo Projekte über
> Jahre laufen und evtl. hunderte von Mitarbeitern partizipieren - nur wenig
> Verbreitung. Insbesondere die fehlenden Features für vernünftiges Merge
> und Variantenmanagement (neudeutsch: software product lines) lassen es
> hier oft ungeeignet erscheinen. Die angesprochene Ablösung von svn + cvs
> durch verteilte Systeme findet also in erster Linie bei kleinen bis
> mittleren Projekten und im nicht-professionellen Bereich statt. Ausnahmen
> bestätigen wie immer die Regel.

Wirft natürlich gleich die Frage nach: "Was ist ein professionellen Bereich?" 
auf. Gerade vernünftiges Merge punktet Git & Co. Bei SVN (sf.net) habe ich es 
schon oft erlebt, das ein Entwickler mal eben die Commits von einem Andern 
rückgängig gemacht hat, weil er kein Bock hatte die Konflikte auf zu lösen, 
die seine Änderungen ausgelöst haben. Auf die Art und weise, kann man 
wunderbar, den Schwarzen Peter immer weiter Reichen. Irgend wer wird sich 
schon erbarmen und die Konflikte auflösen. Wenn irgend ein Entwickler ein 
Saustall im SVN zurück lässt, der sich nicht kompilieren lässt, haben ihn beim 
nächsten update nach und nach alle Programmiere in ihren Sandboxes. Wenn man 
produktiv weiter arbeite will, ist man also quasi gezwungen, den Saustall von 
Anderen auf zu Räumen.

Ganz anders bei Git & Co. Ich pull die Änderungen wann ich will. Wenn es 
Konflikte gibt, ist der Verursache so lange Außen vor bei der Entwicklung, 
biss er den Konflikt selber aufgelöst hat. Wenn er sich mal alleine nicht mehr 
aus dem Schlamassel befreien kann, dann kann er freundlich fragen, ob ein 
Anderer sein Chaos pullt und für ihn auflöst. Aber niemals sind alle Anderen 
lahm gelegt, weil irgend wer Freitag Nachmittag 10 Min. vor Feierabend Schrott 
commitet hat.

> Die Antwort auf die neuerdings so oft gestellte Frage, ob ein
> zentralisiertes oder ein dezentralisiertes Versionsmanagement besser ist,
> basiert IMHO weitgehend auf dem verwendeten Entwicklungsprozess, jedoch
> nicht auf den Features der Systeme, denn diese sind bei z.B. bei svn und
> .hg weitgehend gleich. 

Trifft für Git nicht zu. Das gibt es Dinge, da träumt man als SVN-Benutzer nur 
von...

> Wenn der Prozess stark entkoppeltes Arbeiten
> erlaubt oder sogar favorisiert, dann ist die Entscheidung für git & Co.
> naheliegend. Bewegen wir uns aber in einer Welt mit starker Kopplung an
> automatisierte Integrations- oder Systemtests (die auch schon mal eine
> ganze Nacht lang laufen), dann ist ein zentrales Einchecken in ein
> continuous integration basiertes System sinnvoller

Man kann auch mit Git ein zentrales System in das gepusht wird einrichten. 

> - allein schon aus
> Gründen der QS.

Gerade QS spricht für Git & Co, weil man damit ein Mehr-Augen-Prinzip 
verwirklichen kann. Die Rechteverwaltung mit SVN ist sehr beschränkt. Man kann 
nicht explizit sagen User darf nur in bestimmte Zeige ein- oder auschecken. 
Zweige anlegen oder löschen. Tags setzen oder löschen usw. usw...

Gruß

Olaf

-- 
Meine Rechtschreibfehler stehen unter der Creative Commons Lizenz.
(Bearbeitungen und Weitergabe unter gleichen Bedingungen):
http://creativecommons.org/licenses/by-sa/3.0/de/