原始碼控制系統(SCCS)管理軟體專案原始碼變更,提供完整歷史紀錄,便於追溯穩定版本。CVS (Concurrent Versions System) 建立在 RCS 之上,支援多開發者並行開發、目錄樹版本控制、發布標籤(STAMP)與彈性腳本整合。
| CVS 優點 | RCS 優點 | |
|---|---|---|
| 架構 | 分散式:各開發者擁有獨立工作目錄樹 | 集中式:單一目錄、嚴格檔案鎖定 |
| 並行開發 | 支援多人同時修改 | 不允許同時修改 |
| 發布管理 | 可對整個專案樹打標籤 | 無法對整個專案打標籤 |
| 腳本整合 | 支援 shell/Perl 封裝成鎖定或並行模式 | 指令簡單、學習曲線平緩 |
| 管理負擔 | 稍高 | 極低 |
強烈推薦 CVS,除非專案極小且單人維護。本文另附 Shell Scripts 簡化 CVS 操作。
rpm -i rcs*.rpm rpm -i cvs*.rpm rpm -qpl cvs*.rpm | less # 查看安裝檔案
export EDITOR=/bin/vi export CVSROOT=/home/cvsroot export CVSREAD=yes
mkdir $CVSROOT chmod o-rwx $CVSROOT chmod ug+rwx $CVSROOT cvs init
cd $HOME/my_source_code_dir cvs import my_source_code_dir V1_0 R1_0 # V1_0 = vendor tag, R1_0 = release tag # 此後 $HOME/my_source_code_dir 不再直接使用,改用 checkout
需安裝 pdksh*.rpm 取得 /bin/ksh,使用遷移腳本(見原文)。
cvs checkout module 取得工作副本cvs update 同步最新版cvs commit 提交變更cvs tag REL_1_0 打發布標籤cvs rtag REL_1_0 module 遠端打標籤詳細 Shell Scripts 封裝請見本系列 (二);RCS 入門請參考 RCS mini-HOWTO。