下一个: Special Files, 上一个: Tracking sources, 上层: Top
简介中曾提到,cvs 不包含将源代码构建成软件的功能。 本节只描述构建系统与 cvs 之间的交互操作。
一个常见的问题,特别是对 rcs 熟悉的人们,是如何得到源代码的最新副本。
对 cvs 答案有两方面(tow-fold)。
首先,因为 cvs 可在目录内递归,所以不必修改 Makefile(或其他配置文件)以使每个文件都更新。
所以,先使用 cvs -q update
命令,再用 make
或 build 工具中别的命令即可。
其次,在完成你的工作之前,不必 去考虑得到其他人做的修改的副本。
建议的作法是先更新源代码然后修改、构建和测试你的修改,然后提交你的源码(如果需要先更新)。 通过周期性地(修改之间,如刚才的描述)更新你的整个源码树,你就能保证你的源代码足够新。
还有一个常见的需要是纪录特定构建中源代码的版本。
这种功能称为 bill of materials 或类似叫法。
在 cvs 中最好的解决方法是使用 tag
命令来纪录给定构建的版本(参阅 Tags)。
大多数简单使用 cvs 的方式下,每个开发人员会有一份整个源码树的副本用于特定的构建。 如果源码树比较小,或者开发人员地理位置分散,这是一种比较合适的作法。 对于大的项目,应当将其分成小的可以独立编译的子系统,它们可以内部发布,这样每个开发人员只需检出自己工作的相应的子系统。
另一种方式是创建一种结构,开发人员对部分文件有自己的拷贝,其他文件从中心获得。
在许多系统上可以使用符号链接,或者使用 make
的 VPATH
特性。
一个专为此设计的 build 工具可以帮你处理,它就是 Odin
(参考 ftp://ftp.cs.colorado.edu/pub/distribs/odin
)。