原文出處:http://tech.it168.com/j/2007-12-03/200712031045818.shtml
本文禁止轉(zhuǎn)載!
CVS的全稱為Concurrent Version System(并行版本系統(tǒng)),主要用于項(xiàng)目的版本管理和協(xié)同開發(fā)。
說明:本例的CVS的客戶端和服務(wù)器端都裝在同一臺機(jī)上。
一. 服務(wù)端CVSNT篇
1. 安裝與配置
下載地址:http://www.cvsnt.org
本文下載的是當(dāng)前的最新版2.5.03。
雙擊下載得到的cvsnt-2[1].5.03.2382.msi文件,開始進(jìn)入安裝,點(diǎn)擊“運(yùn)行”按鈕,進(jìn)入安裝的歡迎界面,接著點(diǎn)擊“Next”按鈕,進(jìn)入是否接受用戶協(xié)定頁面,用戶勾選“I accept…”選擇,接受用戶協(xié)定后,點(diǎn)擊“Next”按鈕,進(jìn)入選擇安裝模式頁面,如下圖所示:
在此存在三種安裝模式,即典型、自定義和完全安裝,筆者選擇的是典型安裝,選擇后點(diǎn)擊“Next”按鈕,進(jìn)入安裝準(zhǔn)備頁面,如下圖所示:
在該圖中點(diǎn)擊“Install”按鈕開始進(jìn)入安裝,安裝完成后彈出安裝完成頁面,點(diǎn)擊安裝完成圖的“Finish”按鈕完成安裝。安裝完成后,會提示用戶是否現(xiàn)在就重啟系統(tǒng)來使安裝生效,如下圖所示:
點(diǎn)擊“Yes”按鈕重啟系統(tǒng)。
安裝完成后,還需要配置CVS的知識倉庫,讀者可以首先在E盤下建立CVS目錄,用來作為CVS的知識庫。通過“程序”-> CVSNT -> CVSNT Control Panel進(jìn)入CVSNT的控制面板,點(diǎn)擊“Repository configuration”頁簽,點(diǎn)擊“Add”按鈕,彈出服務(wù)端參數(shù)設(shè)置頁面,在location中選擇之前建立的知識倉庫目錄,內(nèi)容如下所示:
點(diǎn)擊“OK”按鈕,完成CVS知識倉庫的建立。此時(shí)我們打開E:/CVS文件夾,可以看到在該目錄夾下被新建立了一個(gè)CVSROOT目錄。
當(dāng)不同的cvs客戶端連接CVS時(shí),考慮到兼容性等問題,讀者還需要切換到Compatibility標(biāo)簽,將Response as cvs 1.11.2 to version r選項(xiàng)勾上。
為了測試CVSNT是否成功,我們可以在命令行下輸入CVS命令,如果彈出如下信息,則表示安裝成功:
讀者若想查看所安裝的CVSNT的版本信息,可以通過輸入cvs version,本文安裝的版本為2.5.03。
2. CVS的分布
CVS 是典型的 C/S 結(jié)構(gòu)的軟件,因此它也分成服務(wù)器端和客戶端兩部分。如下圖所示:
3. CVSNT的基本工作思路
在一臺服務(wù)器上建立一個(gè)知識倉庫,倉庫里可以存放許多不同項(xiàng)目的文件。
每個(gè)用戶在使用倉庫之前,首先要把倉庫里的項(xiàng)目文件下載到本地。用戶做的任何修改首先都是在本地進(jìn)行,然后用 CVS 命令進(jìn)行提交。
倉庫概念如下圖所示:
4. 常用命令和語法
在CVSNT中,有很多常用命令,例如添加CVS用戶、將CVS用戶綁定到操作系統(tǒng)、登錄CVS、檢出(check out)文件或目錄、提交文件或目錄、刪除文件或目錄等,將本小節(jié)中,我們在本小節(jié)中將分別進(jìn)行討論。
為了能夠進(jìn)行添加和修改用戶等等的操作,還需要設(shè)置CVS的資源庫,在此我們需要設(shè)置CVSROOT環(huán)境變量,進(jìn)入“我的電腦”-> “高級”-> “環(huán)境變量”,在系統(tǒng)變量中設(shè)置名為CVSROOT的環(huán)境變量,在本文中,CVSROOT變量的值設(shè)置為:E:"CVS。
注意:在設(shè)置完成后,為了使設(shè)置生效,需要在服務(wù)中重啟CVSNT的兩個(gè)服務(wù):CVSNT Dispatch service 2.5.03.2382和CVSNT Locking Service 2.5.03.2382。否則在下面的新增CVS用戶等步驟中會出現(xiàn)沒有設(shè)置CVSROOT的錯(cuò)誤。
1)新增CVS用戶
命令為:cvs passwd -a <cvs用戶名>
例如,新增一個(gè)用戶名為AmigoXie的用戶,可在命令行輸入如下語句:
cvs passwd -a AmigoXie
按下Enter鍵后,在命令行中輸入設(shè)置的密碼,筆者在此處輸入為:19821121,按Enter后再輸入確認(rèn)密碼,
2)綁定CVS用戶到操作系統(tǒng)
命令為:cvs passwd -r winUser cvsUser
例如,將在1)中建立的CVS用戶AmigoXie綁定到操作系統(tǒng)用戶AmigoXie,命令為:cvs passwd -r AmigoXie AmigoXie,按下Enter鍵后,提示輸入新密碼和確認(rèn)密碼,輸入后,即完成了綁定CVS用戶到操作系統(tǒng)的操作。
3)取消CVS用戶到操作系統(tǒng)的綁定
命令為:cvs passwd -R cvsUser
例如,讀者輸入命令:cvs passwd –R AmigoXie,按下“Enter”鍵后輸入新密碼和確認(rèn)密碼,即完成了CVS用戶AmigoXie到操作系統(tǒng)的綁定。
4)將用戶狀態(tài)置為無效
命令為:cvs passwd -x cvsUser
例如,讀者輸入命令:cvs passwd -x AmigoXie,按下“Enter”鍵,即完成CVS用戶AmigoXie的狀態(tài)改變。
5)刪除某用戶
命令為:cvs passwd -X cvsUser
例如,若讀者想刪除名稱為AmigoXie的CVS用戶,在命令行下輸入如下命令:
cvs passwd -X AmigoXie
按下Enter鍵后,會出現(xiàn)成功刪除該用戶的提示信息。
6)瀏覽CVS的模塊信息
命令為:cvs ls
在命令行下輸入cvs ls,可看到CVS當(dāng)時(shí)的模塊信息,至少包括一行記錄,即CVSROOT。
7)從服務(wù)器取出項(xiàng)目和文件
命令為:cvs checkout projectname
例如,我們想要取出CVSROOT項(xiàng)目,可在命令行中輸入:
cvs checkout CVSROOT
按下“Enter”鍵后,在命令行中會出現(xiàn)各文件的取出信息。該命令可將最新版本的源代碼導(dǎo)出到相應(yīng)目錄匯中(在此進(jìn)入的是C:"Documents and Settings"AmigoXie目錄,所以CVSROOT被導(dǎo)入該目錄中)。
8)更新CVS的文件或項(xiàng)目
命令為:cvs update file_name
其中file_name可以不指定,不寫時(shí)表示同步所有子目錄下的文件。我們首先在E:/CVS目錄下建立CVSProject目錄,同時(shí)通過命令set cvsroot=:sspi:localhost:E:/CVS/CVSProject將其設(shè)置為CVS的module,設(shè)置成功之后,在命令行中運(yùn)行cvs ls,可看到除了CVSROOT外,多了CVSProject這個(gè)module。我們通過7)中的checkout命令(cvs checkout CVSProject)將其取出。此時(shí)在命令行中輸入cvs update,即可完成該工程的更新操作。
9)添加文件或目錄到CVS服務(wù)器
命令為:cvs add new_file_or_folder
我們首先在我們下載的CVSProject目錄下建立一個(gè)amigo目錄,和一個(gè)amigo.txt文件,在命令行中進(jìn)入C:"Documents and Settings"AmigoXie"CVSProject目錄后做如下操作:
在上圖中可以看到文件和目錄添加成功的信息,此時(shí)我們進(jìn)入E:"CVS"CVSProject目錄,可看到多了amigo目錄和amigo.txt文件。
10) 添加文件或目錄到CVS服務(wù)器
命令為:cvs commit -m "comments" file_name
我們修改C:"Documents and Settings"AmigoXie"CVSProject目錄下的amigo.txt文件,在該文本文件中加上內(nèi)容:amigo。此時(shí)在命令行中輸入:
cvs commit -m "修改后的文件" amigo.txt
可看到運(yùn)行結(jié)果如下:
此時(shí)進(jìn)入E:"CVS"CVSProject目錄,可看到多了amigo.txt,v文件,查看文件內(nèi)容時(shí)可以看到該文件中記錄了更新信息。
11) 查看文件版本信息和修改信息
命令為:cvs log file_name
例如,在命令行中輸入cvs log amigo.txt,可在命令行中看到該文件的修改信息,以及修改時(shí)的注釋等信息。
12) 版本比較功能
命令為:cvs diff file_name
查看當(dāng)前文件和庫中文件的區(qū)別可用如上的命令,例如修改amigo.txt文件后運(yùn)行cvs diff amigo.txt命令,可在命令行中看到相關(guān)的修改信息。
查看文件不同版本的區(qū)別,可用類似語句:
cvs diff –r 1.1 –r 1.2 file_name
13) 刪除CVS文件或目錄
命令為:cvs rm –f file_name
cvs commit -m "reason to delete" file_name
例如,我們在命令行下輸入如下信息,可刪除在10)中建立的amigo.txt文件,如下圖所示:
二. 客戶端WinCVS篇
WinCVS是CVS的一個(gè)客戶端程序,它以CVS作為基礎(chǔ),它運(yùn)行在Windows上,在其上構(gòu)造了功能強(qiáng)大的GUI,使得Windows平臺上的CVS用戶能非常容易的進(jìn)行協(xié)同工作。它可以用來在Windows上登錄CVS服務(wù)器,然后進(jìn)行一些CVS相關(guān)的操作與管理。
1. 安裝與配置
英文版下載地址:http://sourceforge.net/project/showfiles.php?group_id=10072
讀者可以自行下載WinCvs 2.1.1版本,筆者下載的是WinCVS的中文版1.3版,下載地址為:http://www.8848software.com/wincvs/。
在安裝WinCVS中文版前,需要首先下載python,下載地址為:http://www.python.org/download/,筆者下載的是2.1.3版本。
注意:WinCVS僅支持python2.2.3以下的版本,其它更新的版本會出現(xiàn)一些問題,請注意是否下載了正確的版本。
點(diǎn)擊下載的wincvs.exe文件,并按照安裝步驟完成安裝后,打開WinCVS,操作界面如下所示:
我們還需要在WinCVS中進(jìn)行登錄配置,點(diǎn)擊“管理”-> “設(shè)置”,彈出設(shè)置頁面,筆者的設(shè)置如下:
點(diǎn)擊“確定”按鈕設(shè)置完成后,點(diǎn)擊“管理” -> “登錄”,在彈出的登錄設(shè)置頁面中點(diǎn)擊“確定”按鈕,接著彈出口令認(rèn)證頁面,輸入用戶AmigoXie的密碼信息19821121,點(diǎn)擊“確定”,若在控制臺的末尾看到信息“***** CVS exited normally with code 0 *****”,則表示登錄成功。下載下來的項(xiàng)目默認(rèn)放在C:/tmp目錄下。
2. 常見操作
1)新增文件或目錄
在C:/tmp/CVSProject目錄下新建doc目錄,在WinCVS中點(diǎn)擊左邊的C:/tmp/CVSProject文件夾,在右邊的顯示框中可以看到該新增的文件夾,選擇doc文件夾后點(diǎn)擊紅色的新增按鈕,即完成該文件夾的新增。
接著在doc目錄下建立sterning.txt文件,在WinCVS中進(jìn)入doc目錄后可看到如下信息:
點(diǎn)擊新增按鈕后,狀態(tài)如下:
2)提交文件或目錄
在1)中選擇sterning.txt后,點(diǎn)擊右鍵,選擇“提交選項(xiàng)”,出現(xiàn)輸入注釋信息框,點(diǎn)擊“確定”按鈕,即完成了目錄的提交。目錄提交方式與該操作方式一樣。
3)更新文件或目錄
例如,在C:"tmp"CVSProject"doc目錄下刪除sterning.txt文件后,在WinCVS中選擇doc目錄,右鍵選擇“更新選項(xiàng)”,即可sterning.txt文件重新被下載到doc目錄下。
4)版本比較
依照1)和2)中的步驟在doc目錄下新建amigo.txt文件,并將其提交到CVS,文件內(nèi)容為amigo,同時(shí)修改C:"tmp"CVSProject"doc下的該文件(添加新行,新行內(nèi)容為sterning)。在WinCVS中選擇該文件后,點(diǎn)擊右鍵選擇“比較選項(xiàng)”,在彈出的“比較設(shè)置”框中點(diǎn)擊“確定”按鈕,即可看到客戶端的版本同服務(wù)器上的最新版的比較信息,如下圖所示:
在上圖中清楚的顯示了本地(右邊)比服務(wù)器上的最新版(左邊)多了一行。
5)刪除文件或目錄
例如,在WinCVS中選擇需刪除的一個(gè)或多個(gè)目錄,點(diǎn)擊操作欄的黑色的刪除選項(xiàng),操作成功后這些被刪除的文件狀態(tài)為紅色的叉叉,選中這些文件,選擇“提交選項(xiàng)”,即可完成刪除操作。
本質(zhì)上CVS是不會刪除任何文件和目錄的,即使是執(zhí)行了以上操作,刪除了某些文件,遠(yuǎn)端CVS實(shí)際執(zhí)行的是將提交刪除的文件放到了一個(gè)叫【Attic】的目錄下,因此,這些被刪除的文件是可以通過一定的方法恢復(fù)的。
6)給項(xiàng)目| 模塊打上標(biāo)簽
在項(xiàng)目開發(fā)中的一些階段性等時(shí)刻,可以通過WinCVS來給項(xiàng)目或模塊打上標(biāo)簽,方法如下:
選擇CVSProject工程,選擇操作欄靠左的“T”(創(chuàng)建標(biāo)簽)按鈕,彈出“創(chuàng)建標(biāo)簽設(shè)置”框,填寫標(biāo)簽名等信息,例如輸入的標(biāo)簽名為branch-release-1-1,點(diǎn)擊“確定”按鈕,可給該版本的文件都打上了branch-release-1-1的標(biāo)簽。
7)導(dǎo)入項(xiàng)目|模塊到CVS
在C:"tmp目錄下建立Test文件夾,并在該文件夾下建立amigo.txt文件,在WinCVS左邊操作欄中選擇C:"tmp"Test文件夾,點(diǎn)擊右鍵選擇“導(dǎo)入項(xiàng)目|模塊”,彈出“導(dǎo)入過濾器”框,選擇“繼續(xù)”按鈕,彈出“導(dǎo)入設(shè)置”框,可采用默認(rèn)設(shè)置,點(diǎn)擊“確定”按鈕即完成該項(xiàng)目或模塊的導(dǎo)入。
8)從CVS上檢出項(xiàng)目|模塊到本地路徑
在WinCvs中選擇某個(gè)文件后,點(diǎn)擊右鍵,并選擇“檢查項(xiàng)目|模塊”選項(xiàng),彈出檢出設(shè)置框,在“檢出設(shè)置”頁簽中填寫相關(guān)信息,筆者填寫的信息如下所示:
點(diǎn)擊“確定”按鈕后完成項(xiàng)目或模塊的檢出,在E:"盤下可看到檢出的項(xiàng)目或模塊。
注意:若想導(dǎo)出打了某個(gè)標(biāo)簽的版本,讀者可在上圖的“檢出選項(xiàng)”中進(jìn)行相應(yīng)設(shè)置,
三. 總結(jié)
在本文中,筆者詳細(xì)講述了CVSNT和WinCVS的知識,包括兩者的安裝配置、CVSNT的常用命令、WinCVS的常見操作等知識,讀者通過閱讀本文,可以在應(yīng)用CVS進(jìn)行版本控制時(shí)能夠更加的熟練自如。
posted on 2007-12-04 14:22
阿蜜果 閱讀(3742)
評論(6) 編輯 收藏 所屬分類:
CVS