RCS版本控制系統簡介
版本控制是指跟蹤和管理原始碼檔案變化的自動過程。RCS(Revision Control System),是最常用的版本控制解決方案,之後有兩個工具可以替代RCS,一個是SCCS(Source Code Control System),另外一個是CVS(Concurrent Version System),其中CVS建立在RCS的基礎上,但CVS更適合管理多目錄的專案,因為它處理層次目錄結構更加簡單。
簡介RCS命令前先說明幾個概念。
1、RCS file:指在RCS目錄下的檔案,有RCS控制,並通過RCS命令存取。副檔名是.v;
2、Working file:從RCS目錄中檢索到的一個或多個檔案,放置在當前目錄,並能夠被編輯;
3、Lock:以編輯目的取回工作檔案時別人就不能同時編輯這個檔案。此時,檔案由第一個編輯它的人鎖定。
RCS只使用ci、co和一個名為RCS的目錄就可以完成RCS的很多工作,RCS目錄是RCS原始碼庫,各個版本的原始碼都存放在原始碼庫中,ci代表“check in”,即在RCS目錄下儲存一個工作檔案,co代表“check out”,用於從RCS目錄中檢索RCS檔案。
首先,我們建立一個名為RCS的目錄
#mkdir RCS
然後,在RCS原始碼庫中存入原始碼
#ci test.c
取出檔案
#co -l test.c,-l表示檔案鎖定,鎖定含義前面已經介紹清楚了。
其他命令引數介紹
-u 與-l意思相反,取出的檔案只讀;
-r Num Num表示版本號,如取出1.5版本的檔案 #co -l -r1.5 test.c;
-f 表示強制RCS覆蓋當前的工作檔案,預設情況下,工作目錄下存在同名檔案,RCS操作會失敗。
RCS關鍵字:RCS關鍵字是一些特殊的類似於巨集的記號,可以用在原始碼、目標檔案或二進位制檔案中插入和維護識別資訊。形式為$KEYWORD$,當一個包含的關鍵字的檔案被取回時,RCS將$KEYWORD$擴充套件為$KEYWORD:VALUE$。
$Id$:檔名,版本號,建立時間日期,作者,狀態,是否鎖定;
$Log$:檔案版本資訊記錄
$Author$:存入版本的使用者登入名
$Date$:日期和時間
$Header$:檔案全路徑名,版本號,日期,時間,作者,狀態,加鎖者
$Locker$:加鎖者
$Name$:用於取回該版本的符號名
$RCSfile$:不包含路徑的檔名
$Revision$:版本號
$Source$:全路徑名
$State$:版本狀態,實驗版Exp、穩定版Stab、發行版Rel