出处:http://if.ustc.edu.cn/~xbzhou/blog/archives/cvsdoczhcn/Branches-and-revisions.html#Branches-and-revisions
通常,一个文件的修订版本历史是一个增长线(参阅 Revision numbers ):
+-----+ +-----+ +-----+ +-----+ +-----+
! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
+-----+ +-----+ +-----+ +-----+ +-----+
然而,cvs 并不局限于线性的开发。版本树(revision tree ) 可以分为不同 的分支(branches ),每一个分支可以是一个独立的自我维护的开发线。而在一个 分支中的变更可以很容易地移回到主干中。
每一个分支均有一个分支号(branch number ),由奇数个“.”分开的十进制数组成 。 把一个整数追加到对应分支赖以分离出的版本号上来创建分支号。使用分支号允许从一个 特定版本分离出多个分支。
所有的分支上的版本都把序号追加到分支号上来构成版本号。下面的例子将展示这一点。
+-------------+
Branch 1.2.2.3.2 -> ! 1.2.2.3.2.1 !
/ +-------------+
/
/
+---------+ +---------+ +---------+
Branch 1.2.2 -> _! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
/ +---------+ +---------+ +---------+
/
/
+-----+ +-----+ +-----+ +-----+ +-----+
! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 ! <- The main trunk
+-----+ +-----+ +-----+ +-----+ +-----+
!
!
! +---------+ +---------+ +---------+
Branch 1.2.4 -> +---! 1.2.4.1 !----! 1.2.4.2 !----! 1.2.4.3 !
+---------+ +---------+ +---------+
虽然如何创建具体分支号的细节通常不是你需要考虑的,但这里是它如何工作的:当 cvs 创建一个分支号的时候它取一个未用的偶整数,用 2 开始 。这样当你想从 6.4 的版本创建分支时分支号将为 6.4.2。以零结尾的所有分支号(如 6.4.0)被 cvs 内部使用(参阅 Magic branch numbers )。分支 1.1.1 有特别的含义。