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

No Trackbacks

Comments

Display comments as Linear | Threaded

Rainer on :

Eine 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.

Add Comment

BBCode format allowed
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA