# 資料來源
此書中的很多原始材料都是來自Subversion項目([http://subversion.tigris.org/](http://subversion.tigris.org/))的五年工作。Subversion是一個從零開始的開源版本控制系統,目的在于替代CVS成為開源社區版本控制系統*事實上*的選擇。這個項目由我的雇主CollabNet公司([http://www.collab.net/](http://www.collab.net/))在2000年初發起,感謝上帝CollaNet從一開始就正確理解如何將它作為一個分布廣泛的合作性項目來運作。從一開始我們就吸收了很多的志愿者,現在這個項目有50多名開發者,其中只有少數是CollabNet的雇員。
在很多方面Subversion都是開源軟件項目的一個典型例子,最終我在上面花費的精力遠超出我最初的預想。另一方面也是出于便利:無論何時我需要一個現象的樣本,我的腦海里便會立即浮現出Subversion中的一個實例。但這也事關驗證。雖然我不同程度地參與了其他幾個開源項目,并且會和很多的朋友和相關的人交談,但我很快就發現,當寫成文字時,所有的斷言都需要經過事實的檢驗。我不想僅僅根據我讀到的它們公開郵件列表上列出的文檔而對事件發表意見。如果有人想用以上的方式嘗試Subversion,我知道,她大約只有50%的正確率,而另外50%是錯誤的。因此,當需要從一個我沒有直接參與的項目找尋靈感或者實例時,我會找一個我信任并且了解內情的人,讓他來說明項目的真實情況。
雖然過去5年我一直在做Subversion,但我從事自由軟件行業已有12個年頭了。因而,其它一些項目也對本書有所影響:
-
自由軟件基金會(Free Software Foundation)的GNU Emacs文本編輯器項目,我在其中維護了幾個小的軟件包。
-
Concurrent Versions System (CVS)版本控制系統是我在1994–1995期間與Jim Blandy全力投入的一個項目,此后,我只是斷斷續續地參與這個項目的工作。
-
Apache軟件基金會(Apache Software Foundation)的開源軟件項目集,尤其是Apache可移植運行庫(Apache Portable Runtime (APR)和Apache HTTP服務器。
-
OpenOffice.org 辦公軟件項目,Sleepycat軟件公司的Berkeley Database項目,以及MySQL數據庫項目;我個人并未參與這些項目的開發,但曾經對其進行關注,并在一些案例中與其開發人員進行過交談。
-
GNU Debugger(GDB)項目(同上)。
-
Debian項目(同上)。
當然,以上并不是一個完整的名單。正如多數的自由軟件程序員一樣,我不定期地追蹤自由軟件行業中許多不同的項目,以對行業的整體情況有全面的了解。在此,我不一一列舉所有的項目,但在書中會適時提及。
- 前言
- 為什么寫這本書?
- 誰應該讀本書?
- 資料來源
- 致謝
- 免責聲明
- 1. 介紹
- 歷史
- 現狀
- 2. 起步
- 從你擁有的開始
- 選擇許可證并應用
- 設置風格
- 通告
- 3. 技術基礎設施
- 一個項目需要什么
- 郵件列表
- 版本控制
- Bug跟蹤
- IRC / 實時聊天系統
- RSS供稿
- Wikis
- 網站
- 4. 社會和政治的基礎架構
- 慈善獨裁者
- 共識為基礎的民主(Consensus-based Democracy)
- 寫下所有的內容
- 5. 金錢
- 參與的類型
- 長期雇傭
- 作為一些個體出現,而不是一個整體
- 公開你的動機
- 錢不能讓你可愛
- 契約
- 資助非編程活動
- 市場營銷
- 6. 交流
- 人如其文
- 避免常見的陷阱
- 刺兒頭
- 處理成長
- Bug跟蹤系統中無對話
- 公開性
- 7. 打包、發布和日常開發
- 版本號
- 發布分支
- 穩定發布版本
- 打包
- 測試和發布
- 維護多發布線
- 發布和日常開發
- 8. 管理志愿者
- 從志愿者中獲取最多
- 像分擔技術任務一樣分擔管理任務
- 轉化
- 提交者
- 榮譽
- 分叉
- 9. 許可證,版權和專利
- 術語
- 許可證的方面
- GPL和許可證兼容性
- 選擇一個許可證
- 版權分配和所有權
- 雙許可證模式
- 專利
- 深入資源
- A. 自由版本控制系統
- B. 自由Bug跟蹤系統
- C. 為什么我要關注車棚的顏色?
- D. 報告bug的樣例指導
- E. 版權