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