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