歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網

CVS-RCS(一)

日期:2017/2/27 9:43:53   编辑:更多Linux
  這份文件是一份 "實際操作的說明" ,以便於能使您很快的設定 CVS/RCS 原始程 式碼控制系統。這份文件裡也有一些將 CVS 上常用的混合命令包成可設定的 shell scripts 。這些 scripts 為 CVS 提供了一個簡單的使用者介面。這份文 件的內容不僅能適用於 Linux 系統也適用於其他像 Unix 的系統,例 如Solaris, HPUX, AIX, SCO, Sinix, BSD, SCO 等等。 _________________________________________________________________ 1. 簡介 2. 那一種版本控制系統適合我? CVS 或 RCS 3. 設定 CVS * 3.1 CVS 的專有環境變數 * 3.2 從 RCS 轉換到 CVS 系統 4. Shell Scripts * 4.1 sget * 4.2 sedit * 4.3 scommit * 4.4 supdate * 4.5 sunlock * 4.6 slist * 4.7 sinfo * 4.8 slog * 4.9 sdif * 4.10 sadd * 4.11 sdelete * 4.12 sfreeze * 4.13 saddtree 5. CVS 的其他文件 6. Emacs 編輯器 7. 問題反應系統 (Problem Reporting System) 8. 這份文件的其他檔案格式 9. 版權 _________________________________________________________________ 1. 簡介 原始碼控制系統是一個必須能管理那些在軟體計劃發展時原始碼所做的改變。軟 體開發者需要一個完整的原始碼改變歷史紀錄, 以便於在發生問題時,能夠追溯 到以前穩定的版本。 既然原始程式碼對於任何的軟體計劃與開發,都是花時間與 金錢中最關鍵的部分,所以花時間藉由使用原始碼控制系統像 CVS 和 RCS 來安 全的保護(safe-guarding)原始程式碼是非常重要的。 CVS (Concurrent Version Control System) 是一個能讓很多程式開發者同時做 軟體開發的非常強大工具。它使用了RCS 的檔案規定格式但多了一層像應用程式 介面的包裝,架在 RCS 的上層。 (譯注: RCS 是較老的版本控制,一個受 RCS 管制的檔案看起來是這樣子的 proj1.c,v ,CVS 沿用了一些 RCS 的規定。) CVS 能夠紀錄你的檔案的歷史紀錄( 通常是原始程式碼,但是其他型態的檔案則 不一定)。 CVS 只存了不同版本中檔案的差異,而不是你所建立的每個版本中的 每個檔案。 CVS 也保持了一個何時,何人更改檔案,為什麽更改檔案等等不同點的歷史紀錄。 CVS 對於軟體的發行和多人同時更改目前原始碼的管理是非常的有幫助。 他並不 只是要對單一目錄下的檔案提供版本控制, 相反的,CVS 更提供了多層有組織的 目錄檔案的版本控制。 在這個目錄下除了你的原始程式碼外,還包含有一個 CVS 所建立的改版控制目錄與檔案。 這些目錄與檔案最後被合並在一起形成一個軟體的發行。 CVS 能被使用在 "C", "C++", Java, Perl, Html 和其他檔案。 2. 那一種版本控制系統適合我? CVS 或 RCS CVS 實際上是架在 RCS 之上的, CVS 只是一堆更強大能控制一個有完整原始程 式碼階層目錄的工具。 我們非常強烈的推薦您使用 CVS,因為您能夠很有彈性的 用 perl , korn bash shell 等 scripts 語言設定您自己的 CVS 系統。 請看一 些 korn shell scripts 的□例 [3]Shell Scripts 。 CVS 的優點 * CVS 是非集中式的管理,使用者從儲存櫃 (repository) 登出一個檔案目錄 , 並且有他自己的獨立的穩定目錄樹。 * CVS 能夠在發行整個計劃的原始目錄樹中"蓋上印記" ("STAMP")。 * CVS 能夠使大家同時修改檔案。 * CVS 能夠用 shell scripts 或 perl 設定成檔案鎖住成單一使用或同時修改 檔案模式。 CVS 的缺點 * 需要比 RCS 多一點的管理。 * 非常成熟復雜的系統,是目前應用上已有的最高技術。(感謝網 友[email protected]來信指證我的錯誤) * 有豐富的命令還有命令選項,因此對於初學者來說有很陡的學習曲線。 簡單 使用的 shell scripts 可在這裡找到 [4]Shell Scripts 。 RCS 的優點 * RCS 非常容易設定。較少一些管理上的工作。 * RCS 用在一個每個人在一起工作的集中區域。 * RCS 對於簡單的系統很有用。 * 非常嚴謹的單一檔案修改模式 - 同步與同時是不允許的。 RCS 的缺失 * 由於使用單一目錄控制與檔案鎖住,不可能由很多的程式設計者做同時的開 發。因為單一目錄下很多人對檔案的改變,會造成 make 的使用錯誤。 * 不能對整個軟體計劃戳上發行(releases)的印記。 這份文件也包含一些 shell scripts 以提供簡單的命令來作登出 (check-out), 登錄 (check-in), 送交(commit) 檔案的動作。 請看一些 shell scripts 的□ 例 [5]Shell Scripts 。 對於 RCS 而言,請看 Linux CD-ROM 裡面的RCS mini-howto。 _________________________________________________________________ cd /mnt/cdrom/Redhat/RPMS ls -l howto-6.0-*.noarch.rpm rpm -qpl howto-6* grep -i rcs _________________________________________________________________ 或者看 [6]http://sunsite.unc.edu/LDP/HOWTO/mini/RCS-HOWTO.html 3. 設定 CVS 首先,你需要安裝 CVS 套件,在Redhat Linux 上請用 _________________________________________________________________ cd /mnt/cdrom/Redhat/RPMS rpm -i rcs*.rpm rpm -i cvs*.rpm To see the list of files installed do - rpm -qpl cvs*.rpm less _________________________________________________________________ 然後用 j, k, CTRL+f, CTRL+D, CTRL+B, CTRL+U 或上下左右鍵, page up/down 浏覽一下結果。 請用 'man less' 查看 less 的用法 在其他的 unix 機器上,你可能需要下載 RCS CVS 的 tar.gz 檔案, 然後根據 README, INSTALL 檔的指示來安裝 CVS。 請到 [7]http://www.cyclic.com 和 [8]http://www.loria.fr/~molli/cvs-index.html 3.1 CVS 的專有環境變數 下列的環境變數需要在 /etc/profile 檔中設定,/etc/profile 是對所有使用者 都有效的內定值設定檔, 如果沒有設定 /etc/profile,那麽你應該加這些設定 到你自己的設定檔 /.bash_profile 內。 _________________________________________________________________ eXPort EDITOR=/bin/vi export CVSROOT=/home/cvsroot export CVSREAD=yes _________________________________________________________________ 建造一個目錄來存你原始程式碼的儲藏櫃 (repository) 並且給予 unix group 與 user 讀寫的權力。 (譯注:這個目錄下將會有很多你將來的原始碼。) _________________________________________________________________ export CVSROOT=/home/cvsroot mkdir $CVSROOT chmod o-rwx $CVSROOT chmod ug+rwx $CVSROOT _________________________________________________________________ 要初始化你的 CVS ,並且從現在開始把你的原始程式碼交給 CVS 管理。請做 - _________________________________________________________________ cvs init (譯注;這個初始化的動作在於建造一個儲藏櫃,是一個目錄$CVSROOT/。 同時 $CVSROOT/CVSROOT 也在此時被建造,這個模組目錄下面是控制你CVS的administrati on files, 裡面的檔案做一些修改後,可以使CVS更強大好用。 $CVSROOT 下的目錄每個都是 module 的意思,一個 module 可以就是一個專案計劃。 但也可能是你把一個計劃拆成很多 module ,不同 module 交給不同的 team 去發展。) # 一定要換到想要 CVS 控制的計劃目錄下喔 cd $HOME/my_source_code_dir # 把整個目錄納入管理用 import 命令 cvs import my_source_code_dir V1_0 R1_0 (譯注:其實是 cd 到你的project下後,cvs import 模組 vendor_tag release_tag, 不一定要是目錄名稱 my_source_code_dir,vendor_tag, release_tag 只是識別用的東西 , 將來你可以用 tag 來存取你要的特定版本 這個動作會在 $CVSROOT/ 下開個" 模組 "的目錄,然後把 my_source_code_dir 整個放 到 CVS 下管理, $HOME/my_source_code_dir 就沒用了。import 的動作是把已經寫好的一堆 code 擺進來, 如果將來想新增檔案xxxx.c,必須先寫好xxxx.c,再用 cvs add xxxx.c)




Copyright © Linux教程網 All Rights Reserved