cvs版本樹(revision tree) 可以分為不同的分支(branches),每一個分支可以是一個獨立的自我維護的開發線。而在一個分支中的變更可以很容易地移回到主幹中。
每一個分支均有一個分支号(branch number),由奇數個“.”分開的十進制數組成。 把一個整數追加到對應分支賴以分離出的版本号上來建立分支号。使用分支号允許從一個特定版本分離出多個分支。 當 cvs 建立一個分支号的時候它取一個未用的偶整數,用 2 開始。這樣當你想從 6.4 的版本建立分支時分支号将為 6.4.2。以零結尾的所有分支号(如 6.4.0)被 cvs 内部使用。(分支 1.1.1 有特别的含義)
這時候我們使用
cvs log -T -r分支名 檔案名
檢視某個檔案時,會發現一個奇怪的現象,

Code
Working file: goldequip.txt
head: 1.63
branch:
locks: strict
access list:
symbolic names:
tag_issue_v_247_20090806: 1.4.6.1.2.12.2.21.12.2
tag_issue_v_04_253_20090806: 1.58.16.1.2.1
tag_issue_v_03_00_269_20090804: 1.4.6.11.2.4.2.1.22.3
tag_issue_v_246_20090803: 1.4.6.1.2.12.2.21.12.2
tag_issue_v_245_20090730: 1.4.6.1.2.12.2.21.12.2
tag_issue_v_04_251_20090730: 1.58.16.1.2.1
tag_issue_v_04_250_20090728: 1.58.16.1
tag_issue_v_243_20090723: 1.4.6.1.2.12.2.21
tag_issue_v_04_248_20090723: 1.58.16.1
tag_issue_v_00_000_038_20090723: 1.4.6.11.2.4.2.1.12.1
tag_issue_v_03_00_266_20090723: 1.4.6.11.2.4.2.1.22.3
tag_issue_v_00_000_037_20090722: 1.4.6.11.2.4.2.1.12.1
tag_issue_v_03_00_265_20090722: 1.4.6.11.2.4.2.1.22.3
tag_issue_v_03_00_141_20090709: 1.4.6.1.2.25
tag_issue_v_03_00_263_20090707: 1.4.6.11.2.4.2.1.22.3
tag_issue_v_00_000_036_20090707: 1.4.6.11.2.4.2.1.12.1
tag_issue_v_03_00_140_20090706: 1.4.6.1.2.25
tag_issue_v_03_00_262_20090703: 1.4.6.11.2.4.2.1.22.3
tag_issue_v_04_246_20090702: 1.58
tag_issue_v_03_00_261_20090702: 1.4.6.11.2.4.2.1.22.3
tag_issue_v_03_00_260_20090630: 1.4.6.11.2.4.2.1.22.3
tag_issue_v_241_20090630: 1.4.6.1.2.12.2.21
tag_issue_v_240_20090629: 1.4.6.1.2.12.2.21
tag_issue_v_04_245_20090629: 1.58
tag_issue_v_03_00_258_20090625: 1.4.6.11.2.4.2.1.22.3
tag_issue_v_239_20090625: 1.4.6.1.2.12.2.21
b_dev_ib-00-238_xia_20090624: 1.4.6.1.2.12.2.21.0.12
b_dev_cn-06-244_junxia_20090624: 1.58.0.14
keyword substitution: kv
total revisions: 171; selected revisions: 0
description:
=============================================================================
例如在1.58版本基礎上建立分支b_dev_cn-06-244_junxia_20090624,我們看到的是1.58.0.14,但是用戶端看到的版本号是1.58。在第一次送出後才出現revision内容。
keyword substitution: kv
total revisions: 172; selected revisions: 1
----------------------------
revision 1.58.14.1
date: 2009/08/07 13:43:04; author: ×××; state: Exp; lines: +2 -0; kopt: kv; commitid: 3a44a7bbee83c21; filename: goldequip.txt;
b_dev_cn-06-244_junxia_20090624的1.58.0.14
用程式校驗“cvs update -r分支名 版本号”是否成功
cvs log -T -r分支名 檔案名
1、校驗revision裡面 是否存在。如否則2
2、校驗symbolic names 裡面是否存在,這種情況隻出現在本地剛建立新分支而且沒有送出過的情況。如上面的檔案本地剛擷取新分支時的版本号為1.58,第一送出後就為1.58.14.1了。
3、校驗cvs status校驗本地是否取成功
對比兩個檔案版本号大小時,隻有在同一個分支才有比較意思。這就是說假設兩個檔案都送出到同一個分支,這樣前面幾段必然相同,理論上應該取出最後一段數字比較即可。
特殊情況: 1.19 和 1.18.2.2 對比無意義;1.18 和 1.18.2.2 對比有意義