由你確認沖突內(nèi)容的取舍。也可以多人協(xié)商解決,修改完成后去掉文件中的沖突標(biāo)志
conflict:多人修改同一文件的同一區(qū)域這叫沖突,它必須由人來解決,CVS不處理沖突,它只是告訴你存才沖突
3 cvs commit -m "write some comments here" file_name
------------------------------------
確認修改寫入到CVS庫里。
注意:CVS的很多動作都是通過cvs commit進行后確認并修改的,好每次只修改一個文件。在確認的前,還需要用戶填寫修改注釋,以幫助其他開發(fā)人員了解修改的原因。如果不用寫-m "comments"而直接確認`cvs commit file_name` 的話,cvs會自動調(diào)用系統(tǒng)缺省的文字編輯器(一般是vi)要求你寫入注釋。
注釋的質(zhì)量很重要:所以不僅必須要寫,而且必須寫一些比較有意義的內(nèi)容:以方便其他開發(fā)人員能夠很好的理解
不好的注釋,很難讓其他的開發(fā)人員快速的理解:比如: -m "bug fixed" 甚至 -m ""
好的注釋,甚至可以用中文: -m "在用戶注冊過程中加入了Email地址校驗"
修改某個版本注釋:每次只確認一個文件到CVS庫里是一個很好的習(xí)慣,但難免有時候忘了指定文件名,把多個文件以同樣注釋commit到CVS庫里了,以下命令可以允許你修改某個文件某個版本的注釋:
cvs admin -m 1.3:"write some comments here" file_name
4 查看狀態(tài)
------------------------------------
cvs status filename
狀態(tài)報告,類似這樣:
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: 表明有個哥們已經(jīng)修改過該文件并且已經(jīng)提交了!你的版本比倉庫里的舊.
Needs Merge: 表明你曾經(jīng)修改該文件,但是偏偏有個不識相的也修改了這個文件,而且還提交了!
5 查看修改歷史和注釋信息
------------------------------------
cvs log file_name
其他常用命令
==================================
1 添加文件和目錄
------------------------------------
cvs add new_file_name
cvs add -kb new_file_name
cvs add dir_name
CVS一般只處理文本文件,它會擴展keyword(宏)并轉(zhuǎn)換行結(jié)束符
對于圖片,Word文檔等非純文本的項目,需要使用cvs add -kb選項,否則有可能出現(xiàn)文件被破壞的情況
然后確認修改并注釋
cvs ci -m "write some comments here" new_file_name
2 刪除文件
------------------------------------
將某個源文件物理刪除后
cvs remove file_name
然后確認修改并注釋
cvs ci -m "write some comments here" file_name
注意:很多cvs命令都有縮寫形式:commit=>ci; update=>up; checkout=>co; remove=>rm;
3.修改文件名
------------------------------------
移動文件:文件重命名
cvs里沒有cvs move或cvs rename,因為這兩個操作是先cvs remove old_file_name,然后cvs add new_file_name實現(xiàn)的。
4 目錄結(jié)構(gòu)同步
------------------------------------
如果在你checkout后,有人添加了新的文件或目錄,你需要把他們?nèi)〕鰜?br />
cvs update -d
5 放棄本地的修改(undo)
------------------------------------
如果修改來了本地文件,不想提交,想重新取新文件
cvs update -C filename
它會先把你的本地文件改名
建議:建議大家把checkout的文件缺省為readonly,把"cvs -r"添加到~/.cvsrc文件中
這樣,你每次修改一個文件前,先cvs edit filename,提交后文件又變成readonly,
如果你想放棄本地的修改,則cvs unedit filename,它會undo,而且文件又變成readonly
6 恢復(fù)到舊版本
------------------------------------
cvs update -j1.20 -j1.15 filenames
1.20時當(dāng)前版本號,注意順序不要反了,記住要commit,為了保證是但前版本號,好先lock
注意:cvs update -r1.15 file.name,這里的-r不是版本號的意思,是給文件加了一個叫1.15的sticky tag
如果不小心已經(jīng)加成STICK TAG的話:用cvs update -A 解決