天天看點

[cvs]版本号規則

cvs版本樹(revision tree) 可以分為不同的分支(branches),每一個分支可以是一個獨立的自我維護的開發線。而在一個分支中的變更可以很容易地移回到主幹中。

每一個分支均有一個分支号(branch number),由奇數個“.”分開的十進制數組成。 把一個整數追加到對應分支賴以分離出的版本号上來建立分支号。使用分支号允許從一個特定版本分離出多個分支。 當 cvs 建立一個分支号的時候它取一個未用的偶整數,用 2 開始。這樣當你想從 6.4 的版本建立分支時分支号将為 6.4.2。以零結尾的所有分支号(如 6.4.0)被 cvs 内部使用。(分支 1.1.1 有特别的含義)

這時候我們使用

     cvs log -T -r分支名 檔案名

檢視某個檔案時,會發現一個奇怪的現象,

[cvs]版本号規則
[cvs]版本号規則

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 對比有意義