淺談在Qt中使用CVS
在Qt中使用CVS是本文要講解的內(nèi)容,CVS是一個(gè)C/S系統(tǒng),是一個(gè)常用的代碼版本控制軟件。主要在開源軟件管理中使用。與它相類似的代碼版本控制軟件有subversion。
大家都知道團(tuán)隊(duì)項(xiàng)目中常常要使用版本控制系統(tǒng)來(lái)對(duì)代碼進(jìn)行版本管理和對(duì)多人協(xié)作。不過(guò)有時(shí)候個(gè)人項(xiàng)目也需要版本控制。去年暑假的時(shí)候,記得我當(dāng)時(shí)在為我所在學(xué)校的linux用戶編寫一個(gè)802.1x協(xié)議認(rèn)證客戶端,很快問(wèn)題來(lái)了,因?yàn)槭浅醮巫鱿駱右稽c(diǎn)的東西,在軟件界面等方面又有比較多的要求,經(jīng)常發(fā)現(xiàn)各種各樣的bug,于是三天之后,我建立了一個(gè)日志文件來(lái)記錄各種修改、各種問(wèn)題和一些編寫過(guò)程中產(chǎn)生的想法,但是這種方法非常費(fèi)勁,而且各種修改記錄.有時(shí)候都不知道自己改到哪兒了,當(dāng)打開工程發(fā)現(xiàn)上次的修改發(fā)生嚴(yán)重問(wèn)題的時(shí)候,那真是一個(gè)欲哭無(wú)淚啊,這時(shí)候我隱約感覺(jué)到,我需要使用版本控制系統(tǒng),但是因?yàn)閷W(xué)習(xí)關(guān)系一直沒(méi)有空來(lái)學(xué)。
版本控制系統(tǒng)常用的有Git,Mercurial,SVN,CVS,以及微軟的SourceSafe等,Qt默認(rèn)似乎支持Git,可惜我先學(xué)習(xí)的是RCS,所以順手就學(xué)了CVS。CVS是從RCS發(fā)展而來(lái)的一個(gè)歷史比較久的版本控制系統(tǒng),幾乎覆蓋了版本控制系統(tǒng)應(yīng)有的所有功能。Qt提供對(duì)Git,Mercurial,Perforce,SVN以及CVS的支持,也就是說(shuō),配置好以后,無(wú)須命令行操作就可以方便的使用這些版本系統(tǒng)了。
因?yàn)槲椰F(xiàn)在還沒(méi)有用到過(guò)CVS服務(wù)器,所以這里演示的也只是使用本地文件夾作為倉(cāng)庫(kù)的情況。這里假設(shè)你已經(jīng)懂得使用CVS的基本命令。
1.將工程導(dǎo)入CVS倉(cāng)庫(kù)
我這里有一個(gè)掃雷程序,導(dǎo)入倉(cāng)庫(kù)創(chuàng)建項(xiàng)目:
cvs -d /home/tyh/repository/ import -m"掃雷初步版本,尚需要增加掃雷英雄榜" qtmine qtmine initial
在位于/home/tyh/repository的倉(cāng)庫(kù)中創(chuàng)建了一個(gè)叫做qtmine的工程,并將當(dāng)前文件夾內(nèi)的內(nèi)容導(dǎo)入工程倉(cāng)庫(kù)
2.通過(guò)Qt獲取倉(cāng)庫(kù)中的工程并進(jìn)行修改
運(yùn)行Qt Creator,在歡迎界面中點(diǎn)擊右下方的“Create Project”按鈕,在彈出的如下對(duì)話框中,選擇Project from Version Control-> CVS Checkout
Choose之后,彈出如下對(duì)話框,Repository是指?jìng)}庫(kù)中項(xiàng)目的位置,如果未指定CVSROOT,那么這里的repository可能就要寫得長(zhǎng)一點(diǎn)了,如果已經(jīng)設(shè)定CVSROOT,那么直接寫倉(cāng)庫(kù)中工程的名字即可。這里填寫qtmine,Path一欄是指工程簽出到哪一個(gè)文件夾,譬如這里/home/tyh/desk,那么簽出之后,就會(huì)將簽出的文件夾放到/home/tyh/desk中了。
接下來(lái),就可以看到工程已經(jīng)成功加載到Qt Creator中,就可以像正常的工程一樣修改啦!
3.在Tools->CVS菜單中就可以看到各種指令了,在Qt Creator進(jìn)行的正常的添加/刪除文件等也無(wú)需繁瑣的指令,只需回答簡(jiǎn)單一個(gè)問(wèn)題確認(rèn)以下就可以將修改映射到cvs中。
注意:為了減少不必要的文件,建議最初的工程創(chuàng)建時(shí)采用 Shadow Build,這樣編譯的中間文件(包括Makefile,moc*.cpp,*.o,可執(zhí)行文件等)都會(huì)放到一個(gè) 工程名-build-desktop的文件夾中,自然也就不必因?yàn)橹虚g文件的修改而進(jìn)行頻繁的嵌入/簽出工作了。
CVS目前的配置已經(jīng)基本可以自動(dòng)識(shí)別各種二進(jìn)制文件,自然也就無(wú)須對(duì)圖片文件等費(fèi)心了。不過(guò)使用過(guò)程中發(fā)現(xiàn),對(duì)于Qt的資源文件,Qt Creator只負(fù)責(zé)在它的工程視圖中的文件,例如將圖片資源加入到qrc文件里,那么***Qt Creator更新到CVS中的只是qrc文件,新增加的圖片文件并沒(méi)有簽進(jìn)去。所以說(shuō)這些不歸Qt Creator直接管轄的文件,還是要使用命令手動(dòng)把它們添加到倉(cāng)庫(kù)中
小結(jié):在Qt中使用CVS的內(nèi)容介紹完了,對(duì)于CVS,您如果感興趣,也可以去網(wǎng)上搜集一些其他的知識(shí),那么***在稍微介紹一下,CVS版本控制系統(tǒng)是一種GNU軟件包,主要用于在多人開發(fā)環(huán)境下的源碼的維護(hù)。實(shí)際上CVS可以維護(hù)任意文檔的開發(fā)和使用,例如共享文件的編輯修改,而不僅僅局限于程序設(shè)計(jì)。CVS維護(hù)的文件類型可以是文本類型也可以是二進(jìn)制類型。
【編輯推薦】