目 录 1
译者序 1
前言 1
第1章CVS发展过程 1
1.1什么是自由软件 1
1.1.1 CVS的产生 2
1.1.2两种开发类型 3
1.2 CVS和自由项目有什么关系 4
1.3开放资源开发的原则和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.4删除目录 43
2.3.5文件和目录重命名 43
2.3.3删除文件 43
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培养专业判断力 75
3.3.2到底谁是维护者 77
3.3.3委员会所定的规则 77
3.3.4如果绝对需要做分支,怎么办? 79
3.3.6解决办法 81
3.4小结 81
3.3.5维护者的变更 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.4建立源代码库 89
4.3.3其他源码信息 89
4.4.1密码确认服务器 91
4.4.2源代码库结构细析 95
4.4.3RCS格式总是给@标志加引号 100
4.4.4移走文件所产生的后果 102
4.4.5 CVSROOT/管理目录 103
4.5小结 111
5.1软件设计的重要性 112
5.2软件设计与自由软件设计 112
第5章为分布开发而设计 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.3将数据结构归档 120
5.6.2使用一致的接口 120
5.6.4使其有良好的移植性 121
5.7小结 121
第6章高级CVS 122
6.1超越基本工作 122
6.2把CVS作为电话 122
6.2.1监视功能 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章编译、测试和发布 161
7.1为什么要发布 161
7.2启动发布过程 162
7.2.1避免“代码仓促发布” 162
7.2.2冻结 163
7.2.3开发与稳定分支 164
7.3测试 165
7.3.1招募和留住测试人员 165
7.3.2自动测试 166
7.4编译、安装和打包 166
7.5发布 171
7.5.1告诉世界做了哪些修改 171
7.5.2在CVS中记录发布版本:标签和版本号 171
7.6小结 172
8.2常见问题 173
8.2.1工作拷贝的管理域 173
第8章技巧和疑难解答 173
8.1当有问题出现时 173
8.2.2源代码库访问权限 175
8.3常见问题和解决办法 176
8.3.1实际问题及解答 177
8.3.2跟踪变化 185
9.2.1 CVS命令的一般格式 186
9.2命令 186
9.1组织与惯例 186
第9章 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环境变量 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.3 cvsutils:使用CVS的常用工具 234
10.2.4 pcl-cvs的前景 234
10.3.2 cvsdo 235
10.3.1 cvsu 235
10.3.3 cvschroot 236
10.3.4 cvsrmadm 236
10.3.5 cvspurge 236
10.3.8 cvsdate 237
10.4 cvs2c1.pI:从cvs日志中生成的GNU-StyIe更改日志 237
10.3.7 cvsco 237
10.3.6 cvsdiscard 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的维护和发展 243
附录B GNU通用公共许可证 245