Ein Großteil des Materials für dieses Buch stammt aus fünf Jahren Arbeit am Subversion-Projekt (http://subversion.tigris.org/). Subversion ist ein Open-Source-System zur Versionsverwaltung[2], das von Grund auf neu geschrieben wurde, und als Ablösung für CVS konzipiert ist, dem Quasi-Standard für Versionsverwaltung in der Open-Source-Gemeinschaft. Das Projekt wurde von meinem Arbeitgeber, CollabNet (http://www.collab.net/), im Frühjahr 2000 begonnen, und zum Glück verstand CollabNet, es gleich von Beginn an als echtes gemeinschaftliches, verteiltes Unterfangen zu betreiben. Von Anfang an bekamen wir großen Zulauf an Freiwilligen. Heute sind um die 50 Entwickler am Projekt beteiligt, von denen nur wenige bei CollabNet angestellt sind.
Subversion ist in vielerlei Hinsicht ein klassisches Beispiel für ein Open-Source-Projekt, und ich griff darauf mehr zurück, als ich ursprünglich erwartet hatte. Zum Teil einfach aus Bequemlichkeit: Wenn ich nach einem Beispiel für ein bestimmtes Phänomen suchte, konnte ich mich meist spontan an einem Fall aus Subversion erinnern. Obwohl ich an anderen Open-Source-Projekten in unterschiedlichem Maß beteiligt bin, und mit Freunden und Bekannten rede, die ebenfalls an vielen weiteren beteiligt sind, wurde mir beim Schreiben schnell klar, dass ich meine Behauptungen durch Fakten stützen sollte. Allein auf der Grundlage dessen, was ich aus den öffentlichen Archiven ihrer Mailinglisten entnehmen konnte, mochte ich keine Äußerungen über Ereignisse in anderen Projekten machen. Würde jemand dasselbe mit Subversion versuchen, da bin ich sicher, läge er nur in der Hälfte der Fälle richtig. Wenn ich also Inspiration oder Beispiele aus Projekten nahm, mit denen ich keine direkte Erfahrung hatte, versuchte ich zuerst, mit einem Beteiligten aus dem Projekt zu reden, mit jemandem der wusste, was sich tatsächlich abgespielt hatte.
Ich arbeite seit 5 Jahren an Subversion, habe aber schon seit 12 Jahren mit freier Software zu tun. Unter anderem haben folgende Projekte dieses Buch beeinflusst:
Das GNU Emacs Text-Editor-Projekt der GNU Software Foundation, bei der ich ein paar kleine Pakete pflege.
Concurrent Versions System (CVS), an dem ich intensiv mit Jim Blandy von 1994 bis 1995 arbeitete, seitdem aber nur sporadisch beteiligt bin.
Die Open-Source-Projekte unter dem gemeinschaftlichen Namen Apache Software Foundation, insbesondere die Apache Portable Runtime (APR) und der Apache HTTP Server.
OpenOffice.org, die Berkeley-Datenbank von Sleepycat, und die MySQL-Datenbank, an denen ich zwar nicht persönlich beteiligt war, die ich aber beobachtet und zu denen ich Kontakt gepflegt habe.
GNU Debugger (GDB) (ebenso).
Das Debian-Projekt (ebenso).
Die Liste ist natürlich unvollständig. Wie die meisten Open-Source-Programmierer halte ich beiläufig Kontakt zu vielen verschiedenen Projekten, nur um ein allgemeines Gefühl für ihren Zustand zu behalten. Ich werde sie hier nicht alle beim Namen nennen, aber sie werden im Text an entsprechender Stelle erwähnt.