下一个: Magic branch numbers, 上一个: Accessing branches, 上层: Branching and merging
通常,一个文件的修订版本历史是一个增长线(参阅 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 有特别的含义。 参阅 Tracking sources.