Skip to content

SCM Systeme

Versions- und Konfigurationsverwaltung bei der Softwareentwicklung sind extrem wichtig und hilfreich. Zum einen ist es die einzige Möglichkeit in Teams an Software Projekten zu arbeiten, aber zum anderen unterstützen sie auch jeden einzelnen Entwickler dabei Übersicht zu behalten bei Änderungen, Versuchen und unterschiedlichen ausgelieferten Software Ständen. Wichtig ist dazu eine gute Integration in die Arbeitsumgebung des Entwicklers. Kommerzielle Anbieter wie Accurev, IBM Rational Clearcase, Perforce, MKS SourceIntegrity, Borland StarTeam, Microsoft Visual Source Safe haben deswegen auch mindestens eine gut unterstützte Entwicklungsumgebung. Daneben gibt es noch einige traditionelle und freie Tools (meist aus der Unix Ecke). Dazu gehören RCS, CVS und SCCS. Da in einem Repository sehr viel Know-How über das entwickelte Produkt für sehr lange Zeit gespeichert wird, und da Entwickler eine Menge Zeit im Umgang mit dem System gewinnen können ist die Auswahl eines SCM Tools sehr sorgfältig zu treffen. Die Möglichkeit alle Entwickler zu integrieren (ohne teure Lizenzen) und die Offenheit des Quelltextes für die langfristige Benutzbarkeit der Lösung sprechen ganz klar für Open Source Tools. Dann muss das Projekt aber einen gewissen Bekanntheitsgrad haben, um sicher zu stellen dass es auch Langfristig noch benutzt wird. Daraus ergibt sich dann auch ein lebhaftes Ecosystem, das z.B. eine Vielzahl von Plug-Ins für IDEs herausbringt.

Die Entscheidung für ein System ist also weitreichend. Eine der meist-diskutiertesten dürfte Linus Torvalds Entscheidung für BitKeeper gewesen sein. Das kommerzielle Tool war für die Linux Kernel Entwicklung in einer kostenlosen Version verfügbar und deckte gut die Anforderungen für eine verteilte Entwicklung eines großen Source Projektes ab. Inzwischen kam es aber zum Eklat, und Linus sieht sicht nach Alternativen um. Für mich ist das Thema Versionsverwaltung schon deswegen ein Thema, weil für mich die Optimierung des Entwicklungsprozesses in meiner Firma ein Top Thema ist. Für einen mittelständischen Arbeitgeber haben wir sehr viele Entwickler (über mehrere Standorte weltweit verteilt), und leben von einer schnellen und effizienten Infrastruktur. Dabei haben wir klein mit einem Visual Source Safe Repository auf einem Fileserver angefangen. Und ich muss sagen, das System war stabil, hatte ausreichend Features und war sicherlich keine schlechte Wahl. Mit unserem Wachstum, der Einführung eines Build Systems und insbesondere dem Umstieg auf Java war damit aber Schluss. Als wir uns für ein Nachfolgesystem entschieden haben war Offenheit, Investitionsschutz und die Kosten ein wichtiger Faktor. Wir wollten jedem Entwickler den vollen Funktionsumfang bieten, von daher haben sich (auch aus den oben genannten Gründen) Open Source Tools einfach angeboten. Vor fünf Jahren war CVS das Versionsverwaltungssystem das hervorragend in Eclipse integriert war. Zusammen mit einem Linux-basierenden Repository Server sind wir seither damit gut im Geschäft. Keinesfalls soll das aber heißen dass CVS fehlerfrei ist, oder nicht verbessert werden kann. Die Einschränkungen von CVS sind ja hinreichend bekannt. Dazu gehört insbesondere das komplett fehlende versionieren von Gesamtprojekten (insbesondere File Renames), die Einschränkungen bei Branches und ein paar weitere Kleinigkeiten die im Alltag doch störend sind. Dazu kommen jetzt noch neue Anforderungen an die Zugriffssicherheit, die mit einem klassischen Unix Filesystem kaum noch machbar sind. Übrigens: die Anforderungen einer weltweit verteilten Open Source Community wie den Linux Kernel Entwicklern sind ganz Andere als bei einem mittelständischen Software Haus. Von daher wird Linus' Entscheidung für einen Nachfolger (Monotone, GNU Arch, SVK, Darcs, Bazaar-NG, (...)) für die meisten Unternehmen die kommerziell Software Entwickeln nicht direkt eine Bedeutung haben. Das haben übrigens auch die Subversion Entwickler erkannt und dokumentiert und fordern dazu auf Linus in Ruhe zu lassen. Wobei ich auch schon bei meinem aktuellen Favoriten angekommen bin: Subversion scheint so langsam in Sachen Eclipse Integration aufzuholen, und als erklärter CVS Nachfolger sind die Features im Bereich Projektverwaltung sowieso deutlich besser. Zum Weiterlesen

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Bernd Eckenfels am :

Bernd EckenfelsGuter aktueller Vergleich von Distributed (git,hg,bzr) Lösungen: http://www.infoq.com/articles/dvcs-guide Bernd

Rainer am :

RainerEine kleine Bemerkung zu Merge Tracking in Subversion: svnmerge.py (http://www.orcaware.com/svn/wiki/Svnmerge.py) existiert. Und Subversion 1.5 unterstützt Merge Tracking native.

Kommentar schreiben

BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Pavatar, Gravatar, Favatar, Twitter, Identica, Identicon/Ycon Autoren-Bilder werden unterstützt.
Formular-Optionen