F.2. CVS 樹的組織

作者: Marc G. Fournier 寫於 1998-11-05。

命令 cvs checkout 有一個標誌,-r, 可以讓您檢查一個模塊的某一修訂版。舉例來說,這個標誌, 使我們可以很容易地在未來的任何時間檢索構成模塊『tc』的版本 1.0 的原始碼︰

$ cvs checkout -r REL6_4 tc
   

這一點很有用,例如,如果某人說那個版本裡面有一個臭蟲, 但您不能在目前的工作拷貝裡面找出那個臭蟲。

小技巧: 您還可以用 -D 選項檢查任意一天的模塊的源碼。

當您給多於一個文件打上相同的標記時, 您可以把標記想像成"一個在由文件名與修訂版本組成的矩陣中蜿蜒的折線"。 例如我們有 5 個文件,版本是下面的東西:

             file1   file2   file3   file4   file5

             1.1     1.1     1.1     1.1  /--1.1*      <-*-  TAG
             1.2*-   1.2     1.2    -1.2*-
             1.3  \- 1.3*-   1.3   / 1.3
             1.4          \  1.4  /  1.4
                           \-1.5*-   1.5
                             1.6
   

那麼標記 "TAG" 將引用 file1-1.2,file2-1.3,等。

注意: 要建立一個發佈的分支,還要在命令行上加一個 -b 選項,這是一樣的事情。

因此,要建立 v6.4 版本,我按照下面的方式做:

$ cd pgsql
$ cvs tag -b REL6_4
   

這樣就會為 RELEASE 樹建立標記和分支。

現在,對那些有 CVS 訪問(權限)的人,就太簡單了。 首先,建立兩個子目錄,RELEASE 和 CURRENT,這樣您不會混淆這兩個。然後:

cd RELEASE
cvs checkout -P -r REL6_4 pgsql
cd ../CURRENT
cvs checkout -P pgsql
   

這樣將產生兩個目錄樹,RELEASE/pgsqlCURRENT/pgsql。從這時起, CVS 將跟蹤某個位置分支在哪個目錄樹裡面,並且允許兩個樹的獨立更新。

如果您CURRENT 源碼樹上幹活,您只需要像我們開始標記修補版分支以前那樣做事情就行了。

在您完成一個分支的初始檢出後

$ cvs checkout -r REL6_4
   

任何您在那個目錄結構裡面做的事情都局限與那個分支。 如果您對那個目錄結構打了個補丁,然後在該目錄裡面做一次:

cvs commit
   

該補丁就應用到該分支並且 應用到該分支。