您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
cvs完全手冊
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/18 13:52:55 ] 推薦標(biāo)簽:

好每天開始工作前或?qū)⒆约旱墓ぷ鲗?dǎo)入到CVS庫里前都要做一次,并養(yǎng)成"先同步 后修改"的習(xí)慣,和Virvual SourceSafe不同,CVS里沒有文件鎖定的概念,所有的沖突是在commit之前解決,如果你修改過程中,有其他人修改并commit到了CVS 庫中,CVS會通知你文件沖突
<<<<<<< filename
你文件上的內(nèi)容
=======
服務(wù)器上文件的內(nèi)容
>>>>>>> latest revision number in the repository

由你確認(rèn)沖突內(nèi)容的取舍。也可以多人協(xié)商解決,修改完成后去掉文件中的沖突標(biāo)志

conflict:多人修改同一文件的同一區(qū)域這叫沖突,它必須由人來解決,CVS不處理沖突,它只是告訴你存才沖突


3 cvs commit -m "write some comments here" file_name
------------------------------------
確認(rèn)修改寫入到CVS庫里。
注意:CVS的很多動作都是通過cvs commit進(jìn)行后確認(rèn)并修改的,好每次只修改一個(gè)文件。在確認(rèn)的前,還需要用戶填寫修改注釋,以幫助其他開發(fā)人員了解修改的原因。如果不用寫-m "comments"而直接確認(rèn)`cvs commit file_name` 的話,cvs會自動調(diào)用系統(tǒng)缺省的文字編輯器(一般是vi)要求你寫入注釋。
注釋的質(zhì)量很重要:所以不僅必須要寫,而且必須寫一些比較有意義的內(nèi)容:以方便其他開發(fā)人員能夠很好的理解
不好的注釋,很難讓其他的開發(fā)人員快速的理解:比如: -m "bug fixed" 甚至 -m ""
好的注釋,甚至可以用中文: -m "在用戶注冊過程中加入了Email地址校驗(yàn)"

修改某個(gè)版本注釋:每次只確認(rèn)一個(gè)文件到CVS庫里是一個(gè)很好的習(xí)慣,但難免有時(shí)候忘了指定文件名,把多個(gè)文件以同樣注釋commit到CVS庫里了,以下命令可以允許你修改某個(gè)文件某個(gè)版本的注釋:
cvs admin -m 1.3:"write some comments here" file_name

4 查看狀態(tài)
------------------------------------
cvs status filename
狀態(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è)不識相的也修改了這個(gè)文件,而且還提交了!

5 查看修改歷史和注釋信息
------------------------------------
cvs log file_name


其他常用命令
==================================
1 添加文件和目錄
------------------------------------
cvs add new_file_name
cvs add -kb new_file_name
cvs add dir_name

CVS一般只處理文本文件,它會擴(kuò)展keyword(宏)并轉(zhuǎn)換行結(jié)束符
對于圖片,Word文檔等非純文本的項(xiàng)目,需要使用cvs add -kb選項(xiàng),否則有可能出現(xiàn)文件被破壞的情況
然后確認(rèn)修改并注釋
cvs ci -m "write some comments here" new_file_name

2 刪除文件
------------------------------------
將某個(gè)源文件物理刪除后
cvs remove file_name
然后確認(rèn)修改并注釋
cvs ci -m "write some comments here" file_name

注意:很多cvs命令都有縮寫形式:commit=>ci; update=>up; checkout=>co; remove=>rm;

3.修改文件名
------------------------------------
移動文件:文件重命名
cvs里沒有cvs move或cvs rename,因?yàn)檫@兩個(gè)操作是先cvs remove old_file_name,然后cvs add new_file_name實(shí)現(xiàn)的。

4 目錄結(jié)構(gòu)同步
------------------------------------
如果在你checkout后,有人添加了新的文件或目錄,你需要把他們?nèi)〕鰜?br /> cvs update -d

5 放棄本地的修改(undo)
------------------------------------
如果修改來了本地文件,不想提交,想重新取新文件
cvs update -C filename
它會先把你的本地文件改名

建議:建議大家把checkout的文件缺省為readonly,把"cvs -r"添加到~/.cvsrc文件中
這樣,你每次修改一個(gè)文件前,先cvs edit filename,提交后文件又變成readonly,
如果你想放棄本地的修改,則cvs unedit filename,它會undo,而且文件又變成readonly


6 恢復(fù)到舊版本
------------------------------------
cvs update -j1.20 -j1.15 filenames
1.20時(shí)當(dāng)前版本號,注意順序不要反了,記住要commit,為了保證是但前版本號,好先lock
注意:cvs update -r1.15 file.name,這里的-r不是版本號的意思,是給文件加了一個(gè)叫1.15的sticky tag
如果不小心已經(jīng)加成STICK TAG的話:用cvs update -A 解決

上一頁12345下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd