下一个: , 上一个: Accessing branches, 上层: Branching and merging


5.4 分支与修订版

通常,一个文件的修订版本历史是一个增长线(参阅 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.