新聞中心
做了多時(shí)的軟件開發(fā)項(xiàng)目管理,深知代碼管理在軟件項(xiàng)目開發(fā)的過(guò)程中的重要位置,于是想到把遇到的關(guān)于代碼管理方面的經(jīng)驗(yàn)和問(wèn)題記下,以供日后補(bǔ)充參考。目前在這個(gè)領(lǐng)域運(yùn)用最為廣泛的莫過(guò)于CVS和SVN兩者,在實(shí)際運(yùn)用中發(fā)現(xiàn)其實(shí)他們都同樣非常優(yōu)秀,以下我總結(jié)一下 CVS 的日常使用(夾雜與 SVN 的對(duì)比):

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為平魯?shù)确?wù)建站,平魯?shù)鹊仄髽I(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為平魯企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
日常運(yùn)用 :
cvs init : CVS版本庫(kù)的初始化
cvs import -m "write some comments here" project_name vendor_tag release_tag : 一個(gè)項(xiàng)目的***導(dǎo)入
cvs checkout(co) project_name : 將代碼從CVS庫(kù)里導(dǎo)出#與SVN同#
cvs update(up) file_name : 將文件同步到***的版本#與SVN同#
cvs update : 將當(dāng)前目錄同步到***的版本#與SVN同#
cvs commit(ci) -m "write some comments here" file_name : 確認(rèn)修改寫入到CVS庫(kù)里#與SVN同#
cvs admin -m 1.3:"write some comments here" file_name : 修改某個(gè)版本注釋
cvs add new_file : 創(chuàng)建好新文件后添加文件#與SVN同#
cvs add -kb new_file.gif : 按二進(jìn)制文件方式導(dǎo)入#與SVN同#
cvs admin -kkv new_file.css : 改回ASCII文件方式導(dǎo)入
cvs ci -m "write some comments here" : 然后確認(rèn)修改并注釋#與SVN同#
cvs rm file_name : 將某個(gè)源文件物理刪除后(刪除后需要cvs ci -m "comments"一下)
cvs add dir_name : 添加目錄#與SVN同#
cvs log file_name / cvs history file_name : 查看修改歷史#與SVN同#
cvs diff(di) -r1.3 -r1.5 file_name : 查看當(dāng)前文件不同版本的區(qū)別#與SVN同#
cvs diff file_name : 查看當(dāng)前文件(可能已經(jīng)修改了)和庫(kù)中相應(yīng)文件的區(qū)別#與SVN同#
* notice : cvs里沒(méi)有cvs move或cvs rename,因?yàn)檫@兩個(gè)操作是可以由先cvs remove old_file_name,然后cvs add new_file_name實(shí)現(xiàn)的。
項(xiàng)目發(fā)布導(dǎo)出不帶CVS目錄的源文件#與SVN同# :
cvs export -r release1 project_name
cvs export -D 20021023 project_name
cvs export -D now project_name
多項(xiàng)目并發(fā)管理#與SVN不同#參考文件***的NOTICE# :
cvs tag release_1_0 : 建立版本里程碑
cvs commit -r 2 : 開始一個(gè)新的里程碑(標(biāo)記所有文件開始進(jìn)入2.x的開發(fā))
cvs rtag -b -r release_1_0 release_1_0_patch proj_dir : 版本分支的建立(在開發(fā)項(xiàng)目的2.x版本的時(shí)候發(fā)現(xiàn)1.x有問(wèn)題,但2.x又不敢用,則從先前標(biāo)記的里程碑:release_1_0導(dǎo)出一個(gè)分支 release_1_0_patch)
cvs checkout -r release_1_0_patch : 一些人先在另外一個(gè)目錄下導(dǎo)出release_1_0_patch這個(gè)分支:解決1.0中的緊急問(wèn)題,而其他人員仍舊在項(xiàng)目的主干分支2.x上開發(fā)
cvs tag release_1_0_patch_1 : 在release_1_0_patch上修正錯(cuò)誤后,標(biāo)記一個(gè)1.0的錯(cuò)誤修正版本號(hào)
cvs update -j release_1_0_patch_1 : 如果2.0認(rèn)為這些錯(cuò)誤修改在2.0里也需要,也可以在2.0的開發(fā)目錄下合并release_1_0_patch_1中的修改到當(dāng)前代碼中
cvs (-d :pserver:[email protected]:/path/to/cvsroot) login : 常見的登陸格式
cvs (-d xxx) passwd -a user_name : 添加用戶
cvs (-d xxx) passwd -r system_user user_name : 綁定用戶
cvs (-d xxx) passwd -X user_name : 刪除用戶
* notice : 也可以通過(guò)設(shè)置CVSROOT系統(tǒng)參數(shù)使得所有客戶機(jī)所有本地用戶都可以映射到CVS服務(wù)器相應(yīng)同名帳號(hào)
* notice : 將 $Id$ 加在程序文件開頭的注釋里是一個(gè)很好的習(xí)慣
CVSNT 里面還有一個(gè)問(wèn)題就是:添加的用戶登錄時(shí)有可能出現(xiàn) Fatal error, aborting. administrator: no such user 此類的錯(cuò)誤,那么我們需要在CVSNT的Server Settings中把client user設(shè)置一下,一般設(shè)置成 administrator 即可。
目前 My Team 統(tǒng)一使用 Eclipse 開發(fā)工具,以下是一篇關(guān)于 Eclipse CVS 使用的文章,以供參考:http://www.eclipse.org/articles/article.php?file=Article-BranchingWithEclipseAndCVS/article1.html.
* notice : 注意右鍵菜單下面 Team/Compare with/Replace With 菜單的用法基本上就掌握了基本的 Eclipse CVS Plugin 的用法了~
* notice : svn的多任務(wù)管理與cvs不同,svn中的branch實(shí)際上是復(fù)制一份當(dāng)前的repository,然后可以并行地分別修改。復(fù)制采用cheap copy機(jī)制,類似于unix系統(tǒng)中的硬鏈接,branch操作不會(huì)使repository所占用的空間倍增,花費(fèi)的時(shí)間也是常數(shù)級(jí)別的。svn中沒(méi)有單獨(dú)的branch命令,通過(guò)svn copy來(lái)實(shí)現(xiàn)。
這里有一點(diǎn)容易讓人糊涂,因?yàn)閟vn中的版本號(hào)都是指repository,所以不同branch的版本號(hào)是混合交叉的,比如trunk為r60,svn copy之后會(huì)創(chuàng)建r61的branch,對(duì)trunk修改后再commit就成了r62。
svn中的merge并非字面上所示的將兩個(gè)分支歸并到一起,而是diff-and-apply的意思,比較兩個(gè)repository tree,并將他們的差異歸并到working-copy中。這里merge并不區(qū)分兩個(gè)repository tree是否處于不同的分支,也不會(huì)驗(yàn)證working-copy的源頭,所以使用這個(gè)功能的時(shí)候要自己小心。
當(dāng)我們創(chuàng)建了一個(gè)branch,并且對(duì)trunk和branch分別進(jìn)行了比較大的修改,現(xiàn)在想要把branch中的修改歸并到trunk中,此時(shí)應(yīng)該 merge的對(duì)象并不是trunk和branch的***版本,而應(yīng)該是branch的起始版本和***版本。因?yàn)閙erge實(shí)際上只是做一個(gè)diff,所以前者在將branch的修改歸并到trunk的同時(shí)也讓對(duì)trunk的修改丟失了。
分享題目:項(xiàng)目管理之CVS與SVN日常使用總結(jié)
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/ccooghe.html


咨詢
建站咨詢
