posts - 297,  comments - 1618,  trackbacks - 0
                  原文出處: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.2382CVSNT 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

          例如,若讀者想刪除名稱為AmigoXieCVS用戶,在命令行下輸入如下命令:

          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è)置為CVSmodule,設(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

          WinCVSCVS的一個(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ì)講述了CVSNTWinCVS的知識,包括兩者的安裝配置、CVSNT的常用命令、WinCVS的常見操作等知識,讀者通過閱讀本文,可以在應(yīng)用CVS進(jìn)行版本控制時(shí)能夠更加的熟練自如。

          posted on 2007-12-04 14:22 阿蜜果 閱讀(3742) 評論(6)  編輯  收藏 所屬分類: CVS


          FeedBack:
          # re: 使用CVS進(jìn)行版本控制實(shí)戰(zhàn)
          2007-12-04 21:03 | yz
          還有你這樣進(jìn)行CVS控制的,汗!  回復(fù)  更多評論
            
          # re: 使用CVS進(jìn)行版本控制實(shí)戰(zhàn)
          2007-12-04 22:48 | BeanSoft
          暈 我還以為用 Eclipse 的實(shí)戰(zhàn)呢。。。不要到處盜用我喜歡的“實(shí)戰(zhàn)”兩個(gè)字啊。。。  回復(fù)  更多評論
            
          # re: 使用CVS進(jìn)行版本控制實(shí)戰(zhàn)
          2007-12-05 10:10 | 小魚
          用SVN啦  回復(fù)  更多評論
            
          # re: 使用CVS進(jìn)行版本控制實(shí)戰(zhàn)[未登錄]
          2007-12-05 10:20 | apple0668
          個(gè)人感覺svn比較好點(diǎn),看場合啦,有時(shí)cvs就夠啦!  回復(fù)  更多評論
            
          # re: 使用CVS進(jìn)行版本控制實(shí)戰(zhàn)
          2007-12-05 17:08 | 子龍
          好像用MyEclipse不用安裝客戶端就可以檢出項(xiàng)目,你說的太復(fù)雜了吧!  回復(fù)  更多評論
            
          # re: 使用CVS進(jìn)行版本控制實(shí)戰(zhàn)
          2007-12-06 16:02 | legendsen
          CVS早就該下場了,SVN早就該用了。呵呵。
          最近在研究SVK。  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

                生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
                我的作品:
                玩轉(zhuǎn)Axure RP  (2015年12月出版)
                

                Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          關(guān)注blog

          積分與排名

          • 積分 - 2298745
          • 排名 - 3

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 海城市| 讷河市| 阿拉尔市| 郓城县| 婺源县| 新平| 贡嘎县| 云霄县| 大荔县| 浦城县| 通江县| 和硕县| 葵青区| 屏南县| 将乐县| 犍为县| 大埔区| 亚东县| 蓝山县| 合江县| 远安县| 开化县| 城市| 开江县| 南丰县| 定兴县| 永顺县| 宝山区| 富蕴县| 桓台县| 通辽市| 蓝山县| 板桥市| 霍山县| 麦盖提县| 肥东县| 江陵县| 百色市| 隆德县| 张掖市| 新营市|