一、版本控制概述
版本控制(Revision control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程式档案都得到同步。
下图是一个版本控制的图示:
其中
Trunks ——主杆,主开发树
Brances ——分枝,一般指用于发布的某子版本
Merges ——合并,差分合并
Tags ——标签,标签备份
二、双树系统
版本控制最常用的方法是双树系统。一棵树是稳定树(stable tree),另一棵树是非稳定树(unstable tree)或者开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行。发果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为稳定树,如此周而复始的进行下去。
以Linux为例,源程序版本号的形式为x.y.z。对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大1。比如,稳定内核版本号是2.2.10,开发内核的版本号是2.3.12。对2.3树的缺陷修正会回溯影响2.2树,而当2.3足够成熟的时候,会发展为2.4.0。