Robert Kiesling
$Id: RCS-HOWTO.sgml,v 1.4 1997/08/14 15:09:56 rak Exp rak $
--------------------------------------------------------------------------------
這文件包涵 RCS基本的安裝及使用法, RCS 是在 linux 之下的 GNU 修訂版本控制系統(tǒng),這也包括 diff(1)和 diff3(1) 工具的安裝,它對(duì) RCS 的操作而言是必要的.這文件可以是可以整個(gè)或者部分自由重制, ,這份文件的任何使用方法如同一般的 Linux 文件計(jì)劃的 HOWTO系列的版權(quán)宣告.關(guān)於詳細(xì)資料請(qǐng)看檔案版權(quán).送所有的抱怨,建議,錯(cuò)誤,和雜項(xiàng)目問(wèn)題到 kiesling@terracom.net, 使我就可以盡可能保持這文件是最新且最完整.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1. RCS 全覽.
RCS, 版本控制系統(tǒng),是一套的程式它可以追蹤文件的改變和在有工作小組情形下可控制共享存取文件 .這是通常使用在維護(hù)原始碼模組.它也提供追蹤它自己的文件檔案的修訂版本.
RCS 由 Walter F. Tichy和 Paul Eggert 所寫(xiě).最近 Linux 的版是 RCS版本 5.7.有也一個(gè)半官方的,分支的版本也可以用. 這份 HOWTO 之中的許多資料都是從 RCS man page 取得.
RCS 包含 rcs(1)程式,它控制 RCS 檔案合集文件屬性, ci(1)和 co(1),它檢查文件在 RCS 檔案合集的進(jìn)出, ident(1),它藉由關(guān)鍵字辨識(shí)尋找 RCS 檔案合集, rcsclean(1),這個(gè)程式?jīng)]有人在其中工作或者沒(méi)有改變的檔案然後清除它, rcsdiff(1),它執(zhí)行 diff(1)比較修訂版本, rcsmerge(1),它合并兩個(gè) RCS 分支到一個(gè)單一的工作檔,和 rlog(1),它列印 RCS 記錄訊息.
由 RCS 的收集檔案可以是任何格式的純文字,或是二進(jìn)位元可執(zhí)行檔如果 diff程式使用來(lái)產(chǎn)生改變文件操縱 8-位元數(shù)據(jù).靠 ident(1)追蹤有助於文件可以可選擇地包括辨識(shí)的字串 .在修訂版本之間 RCS 使用工具 diff(1)和 diff3(3) 產(chǎn)生改變文件 .一個(gè) RCS檔案合集由一個(gè)檔案的最初的修訂版本組成 ,它是版本 1.1,和一系列改變文件, 每一次修訂版本就有一個(gè).每一次從一檔案合集中提出一個(gè)檔案是使用 co(1),編輯,和重新收入檔案合集中使用 ci(1),版本號(hào)碼被增加,例如, 1.2, 1.3, 1.4,等等連續(xù)的修訂版本.
檔案合集他們本身一般在一個(gè) ./RCS 子目錄,盡管 RCS 有別的選項(xiàng)針對(duì)檔案合集存儲(chǔ)的位置. 對(duì)於 RCS 做全覽,看 rcsintro(1)手冊(cè)頁(yè).
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2. 系統(tǒng)需求.
RCS 需要 diff(1)和 diff3(3)在修訂版本之間產(chǎn)生上下文 diff 文件. 你的系統(tǒng)上需要裝上 diff 工具程式套件 ,和當(dāng)你安裝 RCS,軟體將會(huì)檢查它的存在.
事先編譯好的 diff 工具程式的二進(jìn)位檔可以在以下網(wǎng)址取得
ftp://sunsite.unc.edu/pub/Linux/utils/text/diffutils-2.6.bin.ELF.tar.gz
和它的鏡像站臺(tái).如果你需要編譯 diff(1), et al.,從來(lái)源,它的位置是在
ftp://PRep.ai.mit.edu/pub/gnu/diffutils-2.7.tar.gz
和它的鏡像站臺(tái).
你將需要有 ELF libraries 安裝在你的系統(tǒng)上如果你要安裝事先建好的二進(jìn)位元檔.看 ELF-HOWTO 有更多的詳細(xì)資料.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
3. 由原始檔編譯 RCS.
取得 RCS版本 5.7 的來(lái)源套件.這可以在以下網(wǎng)址取得
ftp://sunsite.unc.edu/pub/Linux/devel/vc/rcs-5.7.src.tar.gz
和它的鏡射站臺(tái).在你打開(kāi)包裝的檔案合集之後到你的來(lái)源樹(shù),你需要針對(duì)你的系統(tǒng)設(shè)定 RCS .在來(lái)源目錄有程序檔 configure 來(lái)完成它,這個(gè)首先你需要執(zhí)行它.這將要產(chǎn)生一個(gè) Makefile和適當(dāng)?shù)摹onf.sh針對(duì)你的系統(tǒng).你能夠然後鍵入
make install
它將會(huì)建立二進(jìn)位元可執(zhí)行檔.在一些地方你也許需要 su 改變身份成為 root 那麼二進(jìn)位元可執(zhí)行檔就可以被裝在正確的目錄.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
4. 建立和維護(hù)檔案.
程式 rcs(1) 做這個(gè)工作或者建立檔案合集和修改他們的屬性. rcs(1)的選項(xiàng)總合可以在 rcs(1)說(shuō)明頁(yè)中找到.
最容易的方法是建立一個(gè)檔案合集是首先 mkdir RCS在現(xiàn)在目錄,當(dāng)時(shí)初始化檔案合集使用
rcs -i name_of_work_file
命令.它使用這名稱建立和收集檔案 ./RCS/name_of_work_file,v和要求一個(gè)文字訊息描述這檔案合集,但是這沒(méi)有儲(chǔ)存什麼修訂版本在檔案合集中.你能夠打開(kāi)或者關(guān)掉嚴(yán)厲的檔案鎖住的使用以下的命令
rcs -L name_of_work_file
和
rcs -U name_of_work_file
各自地.有別的選項(xiàng)針對(duì)控制存取檔案合集,設(shè)定它的格式,和設(shè)定修訂版本數(shù)目,這些包涵在 rcs(1)說(shuō)明頁(yè)中.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
5. ci(1)和 co(1).
ci(1)和 co(1)是命令被用來(lái)檢查他們的 RCS檔案合集的文件進(jìn)出. ci(1)命令也可以使用在檢查一個(gè)檔案在一檔案合集中的進(jìn)與出.在他們的最簡(jiǎn)單的形式, ci(1)和 co(1)拿唯一的名稱的工作檔案.
ci name_of_work_file
和
co name_of_work_file
The command form
ci -l name_of_work_file
使用鎖定屬性啟動(dòng)檢查檔案,和
co -l name_of_work_file
是履行自動(dòng)地.即, ci -l檢查使用鎖定啟動(dòng)重新檢查檔案提出.
ci -u name_of_work_file
檢查檔案進(jìn)入檔案合集,重新再一次檢查它的進(jìn)外使用鎖住無(wú)效屬性.在所有的案例中,使用者是由一個(gè)記錄訊息提示.
ci(1)如果沒(méi)有已經(jīng)存在一個(gè)檔案它會(huì)建立一個(gè) RCS 儲(chǔ)存檔案.
如果你沒(méi)有詳細(xì)說(shuō)明一個(gè)修訂版本, ci(1)在儲(chǔ)存檔案中增加最後的修訂版本鎖定的版本號(hào)目,和附加改訂的工作檔案到其中.如果你詳細(xì)說(shuō)明一個(gè)修訂版本在一個(gè)存在的分支,這必須是比已經(jīng)存在的修訂版本號(hào)碼還高的. ci(1)將也創(chuàng)造一個(gè)新的分支如果你詳細(xì)說(shuō)明沒(méi)有存在的一個(gè)分支的修訂版本.看 ci(1) 和 co(1) man pages(說(shuō)明頁(yè)) 有詳細(xì)資料.
ci(1)和 co(1)有不同的選項(xiàng)針對(duì)和非互動(dòng)的使用.再一次,看 ci(1)和 co(1) man pages(說(shuō)明頁(yè)) 有詳細(xì)資料.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
6. 修訂版本的歷史記錄.
rlog(1)程式提供資料關(guān)於收集檔案和的各修訂版本的記錄儲(chǔ)存在其中.命令如下
rlog work_file_name
將會(huì)列印檔案的版本歷史記錄,各修訂版的創(chuàng)造日期和作者的 userids和是誰(shuí)鎖定那檔案.你可以詳細(xì)說(shuō)明檔案合集的屬性和修訂版本參數(shù)來(lái)檢視.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
7. 在工作文件中包含 RCS 資料.
co(1)維修一份 RCS 資料庫(kù)的關(guān)鍵字清單,它是擴(kuò)充的何時(shí)工作檔案是領(lǐng)出.關(guān)鍵詞 $Id$ 在一個(gè)文件中將要擴(kuò)大為一串字串它包含檔案名,修訂版本號(hào)碼,提領(lǐng)出來(lái)的日期, 作者,修訂版本狀態(tài),和上鎖人,如果有的話.包含關(guān)鍵詞 $Log$ 將要擴(kuò)大到文件的修訂版本歷史記錄.
這些和別的關(guān)鍵字也許是使用當(dāng)做是 RCS 的檔案合集的搜索條件 .看 ident(1)man page(說(shuō)明頁(yè)) 可以知道進(jìn)一步的細(xì)節(jié).
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
8. RCS和 emacs(1)版本控制.
emacs(1)的版本控制便利性可用作是 RCS 的前端 .這資料運(yùn)用特別地針對(duì)版本 19.34 的 GNU Emacs,在主要 Linux distributions 中有提供.當(dāng)使用emacs(1)編輯一個(gè)檔案 它是使用 RCS 注冊(cè), 命令 vc-toggle-read-only (預(yù)設(shè)使用 C-x C-q )將會(huì)檢查一個(gè)檔案在 emacs 的版本控制中,然後進(jìn)入 RCS 中. Emacs 將會(huì)打開(kāi)一個(gè)緩沖區(qū)在哪里你能夠鍵入一個(gè)記錄訊息是被包含在 RCS 記錄中.當(dāng)你是完結(jié)了的鍵入一個(gè)記錄欄位,鍵入 C-c C-c結(jié)束你的輸入和執(zhí)行登錄的程序.
如果你有選擇用 RCS 嚴(yán)厲的鎖住檔案,你必須重新打開(kāi)鎖定的檔案來(lái)編輯靠 emacs(1).你可以提出檔案用 emacs 版本控制使用那指令 % 在 buffer-menu 模式下.
更多資料,請(qǐng)看 GNU Emacs 手冊(cè)和 Emacs info (信息)頁(yè).
--------------------------------------------------------------------------------