RCS(Revision Control System)用於追蹤檔案變更並管理多人協作環境下的共享檔案存取。常用於原始碼模組維護,也可追蹤文件修訂版本。由 Walter F. Tichy 與 Paul Eggert 開發,Linux 上最新版為 5.7。本指南多數資料取自 RCS man page。
RCS 檔案庫可儲存純文字或二進位檔(需 diff 支援)。透過 ident(1) 追蹤的文件可選擇性內嵌識別字串。修訂之間以 diff(1) 與 diff3(3) 產生差異檔。檔案庫由初始版本(1.1)與後續變更組成,版本號遞增(1.2、1.3…)。通常存放於 ./RCS 子目錄。
需 diff(1) 與 diff3(3) 產生上下文差異。安裝 RCS 時會自動檢查。預編譯二進位檔:diffutils-2.6.bin.ELF.tar.gz。原始碼:diffutils-2.7.tar.gz。需 ELF 函式庫支援。
下載原始碼:rcs-5.7.src.tar.gz。解壓後進入目錄執行 configure,產生 Makefile,再執行 make install。部分系統需切換 root 權限安裝至系統目錄。
先建立 RCS 目錄:
mkdir RCS
初始化檔案庫:
rcs -i work_file_name
會建立 ./RCS/work_file_name,v 並要求輸入描述文字,但不儲存修訂。可用 rcs -L 啟用嚴格鎖定、rcs -U 關閉。其他選項控制存取權限、檔案格式、修訂數量等,詳見 rcs(1)。
基本用法:
ci work_file_name co work_file_name
ci -l 檢入後保持鎖定;co -l 檢出並自動鎖定;ci -u 檢入後以未鎖定模式重新檢出。所有情況均提示輸入記錄訊息。若檔案庫不存在,ci 會自動建立。未指定版本號時遞增主幹版本;指定現有分支版本需大於現有號碼;指定不存在版本號則建立新分支。
使用 rlog work_file_name 列印版本歷史,含建立日期、作者 ID、鎖定者資訊。可加參數過濾特定版本或屬性。
co(1) 檢出時會自動擴充關鍵字:
$Id$ → 檔名、版本號、日期、作者、狀態、鎖定者$Log$ → 修訂歷史記錄其他關鍵字可供 ident(1) 搜尋,詳見手冊頁。
GNU Emacs 19.34+ 內建版本控制介面。編輯已註冊 RCS 檔案時,C-x C-q(vc-toggle-read-only)進入 RCS 操作,開啟緩衝區輸入記錄訊息,C-c C-c 送出。嚴格鎖定模式下需重新鎖定才能編輯。更多資訊請參閱 GNU Emacs 手冊。