Большая часть материала для этой книги появилась в результе пятилетней работы над проектом Subversion. (http://subversion.tigris.org/). Subversion - это система контроля версий с открытым исходным кодом, написаная с нуля чтобы заменить CVS, и стать новым стандартом de facto среди систем контроля версий в собществе разработчиков свободного программного обеспечения. Проект был начат моим работодателем, организацией CollabNet (http://www.collab.net/), в начале 2000, и слава богу, что CollabNet с самого начала поняли каким образом нужно руководить проектом, чтобы создать в нем рабочую атмосферу благоприятствующую совместной распределенной работе. Уже с самого начала к нам присоединилось множество разработчиков добровольцев; сейчас над проектом работают около пятидесяти человек и лишь немногие из них - сотрудники CollabNet.
Subversion по многим параметрам подходит как классический пример проекта с открытым исходным кодом. Я использовал материалы этого проекта чаще чем первоначально ожидал. Отчасти это было продиктовано удобством: как только мне нужен был пример определенного явления, я мог припомнить какой-нибудь случай с Subversion. Но кроме удобства это давало нужную степень достоверности. Хотя я и вовлечен (с разной степень вовлеченности) в другие свбодные проекты и общаюсь с друзьями и знакомыми, работающими над еще большим количеством подобных проектов, но когда пишешь для печати, быстро понимаешь что все утверждения и высказывания должны быть подкреплены фактами. Мне не хотелось утверждать что-либо о событиях в других проектах основываясь лишь на том что я мог прочесть в общедоступных архивах их рассылок. Если бы кто-то попробовал судить таким образом о Subversion, я уверен, он оказался бы прав в половине случаев и ошибался бы про другую половину. Так что, черпая вдохновение или примеры из проектов, с которыми у меня не было прямого взаимодействия, я сперва пытался поговорить с осведомленным человеком оттуда, с кем-либо, чьему разъяснению ситуации я бы мог доверять.
Subversion была основной моей работой в течении последних пяти лет, но помимо этого я участвовал в различных проектах свободного ПО в течении двенадцати лет. Другие проекты повлиявшие на эту книгу:
GNU Emacs - проект текстового редактора Free Software Foundation, в котором я занимался поддержкой нескольких небольших пакетов.
Concurrent Versions System (CVS), над которой я интенсивно работал в 1994–1995 годах вместе с Джимом Блэнди, но с тех пор возвращался туда только время от времени.
Группа проектов с открытыми исходными текстами известная как Apache Software Foundation, в особенности Apache Portable Runtime (APR) и Apache HTTP Server.
OpenOffice.org, Berkeley Database от организации Sleepycat, и MySQL Database; Я не учасвствовал в этих проектах лично, но следил за ними и в некоторых случаях разговаривал с людьми оттуда.
GNU Debugger (GDB) (аналогично).
The Debian Project (аналогично).
Это далеко не полный список конечно же. Как и большенство программистов, занимающихся открытым ПО, я присматриваю вполглаза за многими различными проектами, просто чтобы быть в курсе событий. Я не буду их все здесь перечислять, но они упомянуты в тексте.