近項目使用cvs管理,研究了一段時間,參考了幾個文檔,總結如下
CVS完全手冊
==========================================================================
He Wehzhu, kerlion@netease.com, created at 2003-11-5
updated at 2003-11-12
版權聲明:可以任意轉載,轉載時請務必標明原始出處和作者信息
==========================================================================
內容
概述
CVS環(huán)境設置
登錄CVS服務器:
cvs命令格式
CVS的日常使用
其他常用命令
CVS宏/keyword
CVS分支管理
CVS服務器的安裝和配置
Watchers
WinCVS的安裝和配置
CVSWEB的安裝
概述
==================================
CVS是一個并行版本控制系統(tǒng),它采用C/S模式,它的復雜度和功能性屬于中等,是當今流行的版本控制系統(tǒng)。它有兩個基本的特點:
*保存修改記錄:保存了所有文件的修改歷史,并可以建立分支
*協(xié)作與并行:cvs不推薦使用lock-modify-unlock的串行的工作模式,而采用多人可以并行地修改同一個文件,而在提交時merge conflict;它更適合于大型的工作團體。
使用CVS的好處:
*文件集中管理,大家都可以方便的看到所有人員的新文件,規(guī)范化了文件的管理
*可以查看以前任何的一個版本或修改歷史
*可以同時維護多個版本和分支
CVS環(huán)境設置
==================================
先不要管CVS服務器的配置,我們先假設已經(jīng)有一臺配置好的服務器,要訪問CVS,必需先設置環(huán)境變量CVSROOT
CVSROOT=:pserver:user@server#port:/path/to/cvsroot
*pserver是訪問方式,口令認證的意思,這是常用的方式,其他還有gserver,kserver,ext
*user是CVS服務器的用戶名,
*server是CVS服務器的名稱或者IP地址
*/path/to/cvsroot是你的CVS服務器的CVSROOT目錄,根據(jù)你的CVS服務器設置做修改或者詢問管理員
你可以把設置放到你的shell的profile里(.bash_profile,.profile等)這樣不用每次敲一長串命令了
高級功能:現(xiàn)在比較流行是使用ssh來加密口令和數(shù)據(jù)流
CVSROOT=:ext:user@server#port:/path/to/cvsroot
CVS_RSH=ssh
hints:
實際上沒有CVSROOT也可以,你可以每次用cvs -d :pserver:user@server#port:/path/to/cvsroot來訪問,而且它將忽略CVSROOT環(huán)境變量,也許你會笑我只有瘋子才這么用,不過,cvs可以把每次使用的命令參數(shù)放到一個文件中,所以在~/.cvsrc中加入
cvs -d :pserver:user@server#port:/path/to/cvsroot
即可,它大的好處是修改了立刻生效,而且它的優(yōu)先級高于CVSROOT環(huán)境變量,到時候不要傻乎乎地來問我,我的環(huán)境變量真么不起作用了。
登錄CVS服務器:
==================================
$cvs login,這時候cvs會問你口令,請把你在CVS服務器上的口令敲進去
如果沒有任何錯誤信息,恭喜你,成功了!
成功登錄后將建立一個~/.cvspass文件,保存你的口令,以后不用輸入口令了.
cvs命令格式
==================================
cvs [global_opts] command [command_opts] [command_args]
Global options 屬于左邊cvs的,是全局的
command_opts 屬于左邊command的,是局部的
cvs --help-commands查看命令列表
cvs -H command/cvs -help command 查看該命令的選項
hints:如果你每次使用一些命令都帶同樣的參數(shù)的話,可以把它們放到~/.cvsrc文件中去
update -c
diff -c
add -kb
cvs -Q
cvs global-option comand comand-option arguments
CVS的日常使用
==================================
CVS使用流程
a checkout 盡當本地沒有working copy時使用
b staus 檢查服務器上是否有新版本
c update 如果有,則用update同步文件
d 做你自己的修改,并保證正確
e update 看是否有人修改了你的文件
f 如果有沖突,合并沖突
g commit 提交你的修改,如果因為又有人提交修改而失敗,回到e步
h 回到b步
1 cvs checkout module_name
-------------------------------------
module_name可以暫時理解為目錄名,它會在本地但前目錄下建立module_name目錄,在把服務器上說有module_name目錄下的文件copy到本地module_name目錄下。
注意:第一次checkout后,不是通過cvs checkout來同步文件了,而是要進入該目錄下進行具體文件的版本同步(添加,修改,刪除)操作。
2 cvs update filename
-------------------------------------
將文件同步到新的版本:不指定文件名,cvs將同步所有子目錄下的文件。