現(xiàn)在服務(wù)器和客戶端都設(shè)置好了,那么怎么用呢,我在這里寫一個(gè)簡(jiǎn)單的(估計(jì)也是常用的)命令介紹:
首先,建立一個(gè)新的CVS項(xiàng)目,一般我們都已經(jīng)有一些項(xiàng)目文件了,這樣我們可以用下面步驟生成一個(gè)新的CVS項(xiàng)目:
	進(jìn)入到你的已有項(xiàng)目的目錄,比如叫 cvstest:
	$cd  cvstest
	運(yùn)行命令:
	$cvs import -m "this is a cvstest project" cvstest     v_0_0_1     start
	說明:import 是cvs的命令之一,表示向cvs倉庫輸入項(xiàng)目文件.
	              -m參數(shù)后面的字串是描述文本,隨便寫些有意義的東西,如果不加 -m 參
	數(shù),那么cvs會(huì)自動(dòng)運(yùn)行一個(gè)編輯器(一般是vi,但是可以通過修改環(huán)境變量
	EDITOR來改成你喜歡用的編輯器.)讓你輸入信息,
	             cvstest 是項(xiàng)目名稱(實(shí)際上是倉庫名,在CVS服務(wù)器上會(huì)存儲(chǔ)在以這個(gè)名字
	命名的倉庫里.)
	             v_0_0_1是這個(gè)分支的總標(biāo)記.沒啥用(或曰不常用.)
	             start 是每次 import 標(biāo)識(shí)文件的輸入層次的標(biāo)記,沒啥用.
	這樣我們建立了一個(gè)CVS倉庫了,然后,我們可以把這個(gè)測(cè)試項(xiàng)目的文件刪除.試驗(yàn)一下如何從倉庫獲取文件.這里我假設(shè)上面的所有客戶端工作你都已經(jīng)做過了.
	運(yùn)行下面的命令:
	   $cvs checkout cvstest
	從倉庫中檢索出cvstest項(xiàng)目的源文件.
	如果你已經(jīng)做過一次checkout了,那么不需要重新checkout,只需要進(jìn)入cvstest項(xiàng)目的目錄,更新一把行了:
	$cd cvstest
	$cvs update一下即可.又或者你不想直接更新,只是想看看有沒有更新的東西,那么:
	$cvs status
	這時(shí)后會(huì)打印出一長(zhǎng)串狀態(tài)報(bào)告(你可能需要用類似less這樣的命令分頁顯示,或者定向到一個(gè)輸出文件里慢慢看.),對(duì)項(xiàng)目中的每個(gè)文件有一份狀態(tài)報(bào)告,類似這樣:
	===================================================================
	File: foo.c             Status: Up-to-date
	   Working revision:    1.1.1.1 'Some Date'
	   Repository revision: 1.2     /home/cvsroot/cvstest/foo.c,v
	   Sticky Tag:          (none)
	   Sticky Date:         (none)
	   Sticky Options:      (none)
	這里重要的是 Status 欄,這里總共可能有四種狀態(tài):
	Up-to-date:表明你要到的文件是新的.
	Locally Modified:表明你曾經(jīng)修改過該文件,但還沒有提交,你的版本比倉庫里的新.
	Needing Patch:表明有個(gè)哥們已經(jīng)修改過該文件并且已經(jīng)提交了!你的版本比倉庫里的舊.
	Needs Merge:表明你曾經(jīng)修改過該文件,但是偏偏有個(gè)不識(shí)相的也修改了這個(gè)文件,而且還提交給倉庫了!
如果你只是想保持軟件的同步的話(象我),那么上面的東西足夠用了.可是如果多人協(xié)作開發(fā)項(xiàng)目的話,可不是了這么簡(jiǎn)單了.當(dāng)你參加項(xiàng)目,維護(hù)文件時(shí),需要更多命令,比如說你我都是某 nasdaq 項(xiàng)目的開發(fā)人員:
	1,你對(duì)某個(gè)文件做了修改,比如說改了ceo.c,加了一行程序:printf("where can I find VC to cheat!");
	改完之后你要把修改提交給倉庫,用命令:
	$cvs commit -m "add a complain" ceo.c
	或者是:
	$cvs commit -m "worry about money"
	讓cvs幫你檢查哪個(gè)文件需要提交.
	2,當(dāng)我開始干活的時(shí)候,可能我先:
	$cvs status
	一把,這時(shí)候我會(huì)看到:
	==================================================================
	File: ceo.c             Status: Needing Patch
	   Working revision:    1.1.1.1 'Some Date'
	   Repository revision: 1.2     /home/cvsroot/nastaq/ceo.c,v
	   Sticky Tag:          (none)
	   Sticky Date:         (none)
	   Sticky Options:      (none)
	于是我知道有人改了ceo.c,于是我:
	$cvs update ceo.c
	或者干脆:
	$cvs update
	把ceo.c這個(gè)文件更新為新版本,然后再干活.然后提交.
	如果這天你修改了coo.c,加了一行 puts("how about another kind of bragging?");
	并且提交了,但是這時(shí)候我已經(jīng) $cvs status 過了,是說我不知道你的修改.
	而我加了一行printf("You must shamelessly and seems knowingness to act as a coo");
	并且傻乎乎地提交:
	$cvs commit coo.c
	這時(shí)候,CVS會(huì)告訴我
	cvs commit: Examing .
	cvs server: Up-to-date check failed for 'coo.c'
	cvs [server aborted]: correct above error first!