譯者序
前言
第1章 CVS發(fā)展過程 1
1.1 什么是自由軟件 1
1.1.1 CVS的產生 2
1.1.2 兩種開發(fā)類型 3
1.2 CVS和自由項目有什么關系 4
1.3 開放資源開發(fā)的原則和CVS在其中的
用處 6
1.4 怎樣獲得代碼 7
第2章 CVS概況 10
2.1 CVS基本概念 10
2.2 CVS速成 13
2.2.1 調用CVS 14
2.2.2 訪問源代碼庫 14
2.2.3 開始一個新項目 16
2.2.4 檢驗一個工作拷貝 18
2.2.5 做出更改 21
2.2.6 尋找工作記錄 21
2.2.7 CVS和隱含參數 25
2.2.8 提交 28
2.2.9 檢測并解決沖突 32
2.2.10 瀏覽記錄信息 34
2.2.11 檢查并還原更改 37
2.3 其他一些有用的CVS命令 41
2.3.1 增加文件 41
2.3.2 增加目錄 42
2.3.3 刪除文件 43
2.3.4 刪除目錄 43
2.3.5 文件和目錄重命名 44
2.3.6 省略選項輸入 45
2.3.7 制作快照 45
2.4 分支 54
2.4.1 從分支到主干合并改變 59
2.4.2 多重合并 61
2.4.3 無工作拷貝的情況下生成標記或
分支 64
第3章 開放資源進程 65
3.1 失敗與成功 65
3.2 啟動一個項目 66
3.2.1 公開一些有用的東西 67
3.2.2 包裝 69
3.2.3 聲明項目 72
3.3 運行項目 72
3.3.1 培養(yǎng)專業(yè)判斷力 75
3.3.2 到底誰是維護者 77
3.3.3 委員會所定的規(guī)則 77
3.3.4 如果絕對需要做分支, 怎么辦? 79
3.3.5 維護者的變更 81
3.3.6 解決辦法 81
3.4 小結 81
第4章 CVS源代碼庫管理 82
4.1 管理員職責 82
4.2 獲得及安裝CVS 82
4.2.1 UNIX下獲得和編譯CVS 82
4.2.2 在Windows下獲得并安裝CVS 84
4.2.3 在Macintosh下獲得及安裝CVS 85
4.3 剖析一個CVS版本 86
4.3.1 信息文件 86
4.3.2 子目錄 87
4.3.3 其他源碼信息 89
4.4 建立源代碼庫 89
4.4.1 密碼確認服務器 91
4.4.2 源代碼庫結構細析 95
4.4.3 RCS格式總是給@標志加引號 100
4.4.4 移走文件所產生的后果 102
4.4.5 CVSROOT/管理目錄 103
4.5 小結 111
第5章 為分布開發(fā)而設計 112
5.1 軟件設計的重要性 112
5.2 軟件設計與自由軟件設計 112
5.3 設計變化情況 114
5.4 代碼設計 115
5.4.1 把確定和不確定分開 115
5.4.2 代碼分解成文件和目錄 116
5.4.3 代碼分解成模塊 116
5.5 以進化為中心的設計 118
5.6 自由軟件設計的基本準則 119
5.6.1 不要限制輸入 119
5.6.2 使用一致的接口 120
5.6.3 將數據結構歸檔 120
5.6.4 使其有良好的移植性 121
5.7 小結 121
第6章 高級CVS 122
6.1 超越基本工作 122
6.2 把CVS作為電話 122
6.2.1 監(jiān)視功能 122
6.2.2 登錄信息和提交電子郵件 135
6.2.3 刪除一個工作拷貝 136
6.3 對項目歷史記錄的總體瀏覽 137
6.4 使用關鍵字擴展 145
6.5 使用分支 146
6.5.1 反復合并到主干 147
6.5.2 合并進出主干 153
6.5.3 更簡單的方法 154
6.6 網上信息 160
第7章 編譯. 測試和發(fā)布 161
7.1 為什么要發(fā)布 161
7.2 啟動發(fā)布過程 162
7.2.1 避免“代碼倉促發(fā)布” 162
7.2.2 凍結 163
7.2.3 開發(fā)與穩(wěn)定分支 164
7.3 測試 165
7.3.1 招募和留住測試人員 165
7.3.2 自動測試 166
7.4 編譯. 安裝和打包 166
7.5 發(fā)布 171
7.5.1 告訴世界做了哪些修改 171
7.5.2 在CVS中記錄發(fā)布版本:標簽和
版本號 171
7.6 小結 172
第8章 技巧和疑難解答 173
8.1 當有問題出現時 173
8.2 常見問題 173
8.2.1 工作拷貝的管理域 173
8.2.2 源代碼庫訪問權限 175
8.3 常見問題和解決辦法 176
8.3.1 實際問題及解答 177
8.3.2 跟蹤變化 185
第9章 CVS完全參考手冊 186
9.1 組織與慣例 186
9.2 命令 186
9.2.1 CVS命令的一般格式 186
9.2.2 全局選項 187
9.2.3 命令列表 190
9.3 關鍵字替換 217
9.3.1 控制關鍵字擴展 217
9.3.2 關鍵字列表 218
9.4 源代碼庫管理文件 219
9.4.1 共享語法 220
9.4.2 源代碼庫管理文件的列表 220
9.5 運行控制文件 225
9.6 工作拷貝文件 226
9.7 環(huán)境變量 228
第10章 和CVS一起工作的第三方工具 230
10.1 什么是“第三方工具” 230
10.2 pcl-cvs:一個帶有Emacs界面的CVS 230
10.2.1 pcl-cvs 的安裝 231
10.2.2 使用pcl-cvs 232
10.2.3 pcl-cvs 中錯誤的處理 233
10.2.4 pcl-cvs的前景 234
10.3 cvsutils:使用CVS的常用工具 234
10.3.1 cvsu 235
10.3.2 cvsdo 235
10.3.3 cvschroot 236
10.3.4 cvsrmadm 236
10.3.5 cvspurge 236
10.3.6 cvsdiscard 237
10.3.7 cvsco 237
10.3.8 cvsdate 237
10.4 cvs2cl.pl:從cvs 日志中生成的GNU-Style
更改日志 237
10.5 cvslock:對源代碼庫的基本單元上鎖 239
10.6 其他包 241
10.6.1 CVSUp 241
10.6.2 CVSWeb 241
10.6.3 CVS contrib/Directoy 241
10.7 編寫自己的工具 241
附錄A CVS 的維護和發(fā)展 243
附錄B GNU 通用公共許可證 245