zhyiwww
          用平實的筆,記錄編程路上的點點滴滴………
          posts - 536,comments - 394,trackbacks - 0

          1 、前言:

           

          CVS 是版本控制的利器,目前在 Linux Windows 下都有不同版本;但是國內(nèi)大多數(shù)應(yīng)用介紹都是基于 Linux 等開放源代碼的開放性軟件組織,而且講解的也不系統(tǒng),讓人摸不著頭腦; Windows 下的 CVS 使用介紹更是了了無幾。

          本文是針對 Windows LAN 環(huán)境下使用 CVS 的經(jīng)驗介紹,一步一步的向您介紹如何配置和使用 CVS 的服務(wù)器端和客戶端。同時,本文只使用到了 CVS 當(dāng)中最基本的東西,還有很多更為高級的東西,本文暫不涉及。下面是本文的另一個連接映射,歡迎大家討論使用,共同進(jìn)步。

          文章連接 http://www.kuihua.net/book/list.asp?id=66

          論壇連接 http://www.kuihua.net/bbs/dispbbs.asp?boardID=1&;RootID=670&ID=670

          2 、安裝版本:

           

          2.1 、服務(wù)器端 (CVSNT)

          1. 本文使用的是 CVSNT-2.0.4 ,這是一個比較穩(wěn)定的版本,不要使用最新的 CVSNT-2.1.1 ,本人在使用中發(fā)現(xiàn)有比較嚴(yán)重的 Bug

          2. 下載連接 http://www.cvsnt.org 目前,它提供 2.0.6 2.1.1 版本的下載。

          3. 上面連接還提供源代碼,有興趣的朋友還可以下載下來仔細(xì)研究:)。

          4. 有心的朋友,仔細(xì)觀察就會發(fā)現(xiàn) http://www.cvsnt.org 并沒有提供任何客戶端的下載,那是因為 CVS.exe 既可以用于服務(wù)器端又可以用于客戶端, WinCVS 是為了客戶端使用的方便而定制的外殼。(關(guān)于這一點,本人未得到任何證實,只是本人在使用過程中的一種體會,歡迎大家討論。)

          2.2 、客戶端 (WinCVS)

          1. 本文使用的是 WinCVS-1.3b13 ,這應(yīng)該是一個最新版本:),本人在使用過程中并沒有發(fā)現(xiàn)有任何嚴(yán)重的 Bug

          2. 下載連接 http://sourceforge.net/projects/cvsgui/

          3. 此網(wǎng)站還提供豐富的 CVS 文檔和相關(guān)源代碼,以及多個 OS 下面的相關(guān)文檔和代碼;有收藏癖的朋友有福了:)。

          4. WinCVS-1.3b13 使用的 CVSNT 的版本是 CVSNT-2.0.2 ,在與服務(wù)器端的 CVSNT-2.0.4 版本配合使用時,未發(fā)現(xiàn)任何不兼容或沖突現(xiàn)象。

          5. 在本人的系統(tǒng)中用 cvs version 命令顯示的結(jié)果如下:

          Client: Concurrent Versions System (CVSNT) 2.0.2 (client/server)

          Server: Concurrent Versions System (CVSNT) 2.0.4 (client/server)

          3 、服務(wù)器端 (CVSNT) 的安裝與配置:

          3.1 、服務(wù)器端機器和環(huán)境配置:

          1. 操作系統(tǒng): Windows 2000 Professional SP2 中文版

          2. 機器名稱: Server

          3. 機器地址: 192.168.0.6 ( 內(nèi)部 IP)

          4. 網(wǎng)絡(luò)環(huán)境: 100 兆交換局域網(wǎng)

          5. 硬盤分區(qū)格式: FAT32 NTFS 都可以。

          6. 準(zhǔn)備 2 CVSNT 的工作目錄:

          F:\KHRoot ( 存放自己源代碼的根目錄 )

          F:\KHTemp ( 存放 CVS 出錯信息的目錄 )

          7. 本機上存在有的用戶列表:(由 NT 或本機的使用者創(chuàng)建)

          Administrator ( 系統(tǒng)管理員 )

          Jackey ( 普通用戶 )

          Goury ( 普通用戶 )

          Riolee ( 普通用戶 )

          3.2 、安裝 CVSNT

          1. 下載 CVSNT-2.0.4 ;使用 administrator 登陸到 Server 機器上。

          2. 雙擊自解壓的 exe 文件,選擇 Full Install ,其它按照默認(rèn)方式安裝;安裝完畢后可以在服務(wù)控制器中發(fā)現(xiàn)多了 2 個服務(wù): cvsnt cvslocking

          3. 發(fā)送 Service Control Panel 到桌面,形成快捷方式。

          4. 安裝程序會自動將 CVS 安裝路徑,設(shè)置到系統(tǒng)的 Path 環(huán)境變量當(dāng)中,因此使用者可以在控制臺 (cmd) 中任意位置執(zhí)行 cvs.exe ,這一點對下面的配置很重要!!

          3.3 、配置 CVSNT 服務(wù)器:

          1. 雙擊 Service Control Panel 快捷方式,在 Service Status 頁面,確認(rèn) 2 個服務(wù)正常和穩(wěn)定運行。

          2. 選擇 Repository 頁面,點按 Add 按鈕,選擇已經(jīng)準(zhǔn)備好的 F:\KHRoot 這個目錄,確認(rèn), OK Yes ,這時會在 F:\KHRoot 下面建立 CVSRoot 目錄,這是 CVS 默認(rèn)的管理目錄(默認(rèn)模塊)。如果報錯,那是系統(tǒng) Path 路徑未設(shè)置正確。

          3. 選擇 Advanced 頁面,勾上 Use local users for pserver ... ,( Why? I don t know!J , Temporary 欄選擇已經(jīng)準(zhǔn)備好的 F:\KHTemp ,確認(rèn), OK

          4. 點按【應(yīng)用】按鈕,確認(rèn),退出, OK ,搞定!!

          3.4 、小結(jié):

           

          1. 至此, CVSNT 服務(wù)器端基本配置完畢,下面進(jìn)行 WinCVS 的使用和管理。

          2. 由于 CVS 支持遠(yuǎn)程管理,也就是客戶端與服務(wù)器集成的特性,因此,我們將添加用戶、權(quán)限控制、模塊維護(hù)等所有的管理工作都放到遠(yuǎn)端 (WinCVS) 進(jìn)行管理,服務(wù)器端這時可以 Ctrl+Atl+Del 進(jìn)入鎖定狀態(tài)了,下面的所有工作都交給遠(yuǎn)端的 WinCVS 來進(jìn)行管理。

          4 客戶端 (WinCVS) 的安裝與配置:

          4.1 客戶端機器和環(huán)境配置:

           

          1. 操作系統(tǒng): Windows 2000 Professional SP2 中文版

          2. 機器名稱: YCW2000

          3. 機器地址: 192.168.0.2 ( 內(nèi)部 IP)

          4. 網(wǎng)絡(luò)環(huán)境: 100 兆交換局域網(wǎng),可以直接訪問到 Server

          5. 硬盤分區(qū)格式: FAT32 NTFS 都可以。

          4.2 安裝 WinCVS

          1. 下載 WinCVS 1.3b13 ,全部按照默認(rèn)安裝就可以了。

          2. 啟動 WinCVS ,開始使用。特別注意:以下的所有操作都是在 YCW2000(192.168.0.2) 這臺機器上遠(yuǎn)程完成的,此時的 Server(192.168.0.6) 主機已經(jīng)進(jìn)入了鎖定狀態(tài)。

          5 管理員使用 WinCVS 進(jìn)行遠(yuǎn)程管理:

          5.1 配置 WinCVS 成管理員狀態(tài):

          1. 準(zhǔn)備管理員工作目錄: ( YCW2000 機器上 )

          E:\CVSClient\Admin ( 管理員工作目錄 )

          E:\CVSTemp (WinCVS 臨時目錄 )

          2. 第一次啟動 WinCVS 時會自動彈出 Preferences 配置頁面,也可以通過 Admin=>Preference 菜單進(jìn)入;第一次使用時需要配置如下的 3 個頁面:

          General 頁面設(shè)置:

          注:按照圖示方式輸入即可,需要注意的是 Path 部分的格式是 Unix 路徑格式,它指的是 CVSNT 端設(shè)置的工作根目錄。

          CVS 頁面設(shè)置: 注: Home 路徑是設(shè)置密碼等文件的存放位置,必須指定,否則在登陸時, WinCVS 也要彈出設(shè)置框。這個 Home 路徑需要 Python.exe 這個外掛程序才有效。這里選擇已經(jīng)準(zhǔn)備好的路徑: E\CVSTemp

          WinCVS 頁面設(shè)置:

          注:此頁面設(shè)置 WinCVS 的外掛編輯程序,通常使用 UltraEdit 比較方便。

          3. 設(shè)置管理員的工作路徑:可以點按圖標(biāo) ,或 View=>Browse Location=>Change …菜單進(jìn)行設(shè)置,選擇已經(jīng)準(zhǔn)備好的路徑: E:\CVSClient\Admin ,確認(rèn), OK ,這時此目錄將出現(xiàn)在 WinCVS 的左邊導(dǎo)航欄【 Workspace 】內(nèi)。

          4. 至此, WinCVS 就被配置成了遠(yuǎn)程的管理員使用狀態(tài),下面進(jìn)行一般管理員需要的基本操作演練。演練的內(nèi)容為: Administrator 需要管理 Jackey Goury Riolee 三個用戶,分別為這 3 個用戶建立工作目錄,每個人只能訪問自己的工作目錄。同時,只有 Administrator 能夠進(jìn)行權(quán)限分配,其它人沒有任何管理權(quán)限。

          5.2 管理員進(jìn)行管理演練:

          1. 登陸遠(yuǎn)程 CVSNT

            ◇ 選擇 Admin=>Login 菜單,默認(rèn)設(shè)置, OK

            ◇ 彈出密碼輸入框,確認(rèn), OK 。注意觀察輸出框【 OutPut 】的返回結(jié)果。

          2. Checkout 默認(rèn)模塊:( CVSRoot 管理模塊)

            ◇ 在左邊導(dǎo)航欄【 Workspace 】內(nèi),選擇【 Admin 】點按右鍵,選擇【 Checkout

             modules …】,在【 Checkout settings 】中輸入 CVSRoot ,確定, OK 。如下圖:

            ◇ 如果成功的話,會在【 Admin 】欄下增加一個【 CVSRoot 】目錄。表示您已經(jīng)將【

            CVSRoot 】這個管理模塊下載到本地了。

          3. CVS 中目錄權(quán)限介紹:

           

          系統(tǒng)支持的目錄權(quán)限列表:

          r ( 讀取權(quán)限 )

          w ( 寫入權(quán)限 )

          c ( 創(chuàng)建和刪除權(quán)限 )

          n ( 沒有任何權(quán)限 )

          默認(rèn)情況下,任何用戶都擁有任何目錄的所有權(quán)限。

          任何情況下只有目錄的擁有者和 Administrator 才有權(quán)力更改目錄的使用權(quán)限。下面將會介紹如何修改目錄權(quán)限和目錄的擁有者。

          4. 修改 CVSRoot 的權(quán)限:只讓 Administrator 擁有 rcw 三種全部權(quán)限。

          選中剛剛下載的【 CVSRoot 】模塊,【 Ctrl+L 】或 Admin=>Command Line …,彈出 Command Line Settings 對話框,直接執(zhí)行 CVS 命令。

          取消所有用戶的默認(rèn)權(quán)限: cvs chacl default:n 回車, OK ,完成。

          設(shè)置 Administrator 擁有所有權(quán)限: cvs chacl administrator:rcw 回車, OK ,完成。

          更改【 CVSRoot 】的擁有者: cvs chown administrator 回車, OK ,完成。

          查看【 CVSRoot 】的權(quán)限狀態(tài): cvs lsacl 回車, OK ,在【 Output 】中顯示:

          Owner: administrator

          default:n

          administrator:rwc

          ◇【 CVSRoot 】的權(quán)限配置完畢。

          5. 編寫代碼庫中的模塊文件,便于多用戶下載方便。

          l 需要自己編寫的模塊文件格式如下: ( 實現(xiàn)基本功能 )

          【模塊一的描述】【 n 個空格或參數(shù)】【相對目錄路徑一 (DirA)

          【模塊二的描述】【 n 個空格或參數(shù)】【相對目錄路徑二 (DirB)

          ……

          【模塊 X 的描述】【 n 個空格或參數(shù)】【相對目錄路徑 X(DirX)

          ◇【描述信息】與【相對路徑】在字面上不一致時,需要使用 -a 參數(shù)。

          【相對路徑】指的是 CVS 會自動帶上根路徑,這里是 F:\KHRoot ,所以上面例子的完整路徑為: F:\KHRoot\DirA

          了解了模塊文件結(jié)構(gòu),現(xiàn)在來實際操作一把:雙擊【 CVSRoot 】模塊下的 modules 文件,用 UltraEdit 打開進(jìn)行編輯。

          Jackey Goury Riolee 三個用戶分配工作目錄和完成其它模塊描述。

          CVSRoot CVSRoot

          Jackey 工作目錄 -a Jackey

          Goury 工作目錄 -a Goury

          Riolee 工作目錄 -a Riolee

          編輯完畢,存盤。回到 WinCVS ,選中 modules 這個文件【 Ctlr+M 】或右鍵選擇【 Commit selection …】,默認(rèn)設(shè)置,【確認(rèn)】, OK ,完成上傳。

          6 . 為三個用戶分別上傳工作目錄:

          YCW2000 機器上的 E:\CVSClient\Admin 分別建立三個目錄分別名為: Jackey Goury Riolee ,作為臨時交換目錄。

          在新創(chuàng)建的每個目錄中用 UltraEdit 或拷貝一個 Readme.txt 作為引子文件!!:)

          然后,回到 WinCVS ,在【 Workspace 】欄的【 Admin 】目錄下形成如下的目錄結(jié)構(gòu):

          分別選中 Goury Jackey Riolee ,右鍵,點按【 Import Module 】,選擇【 Continue 】,其它全部使用默認(rèn)值,【確定】, OK ,完成上傳工作。

          仔細(xì)觀察【 Output 】窗口,確認(rèn)都成功上傳了。

          轉(zhuǎn)移到系統(tǒng)的 Explore 程序中,刪除 E:\CVSClient\Admin 目錄下的 Jackey Goury Riolee 三個目錄。然后回到 WinCVS 當(dāng)中。 ( 一定要刪除!!!: )

          至此,就完成了工作目錄的上傳工作。

          7. Checkout 】下載 3 個用戶的工作目錄到【 Admin 】目錄下:

          在【 Workspace 】欄選擇【 Admin 】目錄,右鍵,點按【 Checkout Module …】 , 如下圖:

          選擇【…】,得到 CVSNT 上最新的模塊配置情況,彈出如下的信息框:

          這個結(jié)構(gòu)圖就是剛才在 modules 當(dāng)中編寫的模塊文件格式信息。選擇【 Jackey 工作目錄】,下載到 YCW2000 機器的 E:\CVSClient\Admin 目錄下。

          按照以上操作,依次分別下載【 Goury 工作目錄】和【 Riolee 工作目錄】。形成如下狀態(tài):

           

          8. 為三個用戶分別設(shè)置各自目錄的訪問權(quán)限。(只有自己才能訪問自己的工作目錄)

          選中【 Goury 】目錄,【 Ctrl+L 】或 Admin=>Command Line …,彈出 Command Line Settings 對話框,直接執(zhí)行 CVS 命令。

          取消所有用戶的默認(rèn)權(quán)限: cvs chacl default:n 回車, OK ,完成。

          設(shè)置 Goury 擁有所有權(quán)限: cvs chacl goury:rcw 回車, OK ,完成。

          查看【 CVSRoot 】的權(quán)限狀態(tài): cvs lsacl 回車, OK ,在【 Output 】中顯示:

          Owner: administrator

          default:n

          goury:rwc

          按照以上的方法依次分別設(shè)置【 Jackey 】與【 Riolee 】的工作目錄訪問權(quán)限。

          至此,完成了 3 個用戶的目錄權(quán)限分配。注意,雖然 Administrator 也沒有權(quán)力再次【 Checkout 】那 3 個用戶的工作目錄,但是它是這些目錄的擁有者又是 Administrator ,因此,只有它才有權(quán)力更改這些目錄的訪問權(quán)限。

          9. CVSNT 系統(tǒng)中的用戶管理原則:

           

          CVSNT 的用戶與本機 ( 這里是 Server 機器 ) 上的 NT 用戶是相關(guān)聯(lián)的,即 CVSNT 用的全是本機上存在的已有用戶,因此在默認(rèn)情況下可以不用設(shè)置任何用戶名,只要使用本機上已經(jīng)存在的用戶名就可以用 WinCVS 進(jìn)行登陸。

          只有用 Administrator 身份登陸到 CVSNT 系統(tǒng)中,才有權(quán)力進(jìn)行新用戶的創(chuàng)建和刪除。

          使用 CVS 創(chuàng)建的新用戶,必須與服務(wù)器端機器上的 NT 用戶相綁定,才能生效;因此,這個新用戶實際上是綁定它的 NT 用戶的一個替身,在 CVS 系統(tǒng)中稱為“別名”。

          一個 NT 用戶可以有多個‘替身’或‘別名’,充當(dāng)多個 CVS 用戶。

          10. WinCVS 進(jìn)行新用戶的添加和刪除。 ( 確保使用 Administrator 登陸 )

          Ctrl+L 】或 Admin=>Command Line …,彈出 Command Line Settings 對話框,直接執(zhí)行 CVS 命令。

          添加新用戶【 Killer 】: cvs passwd -a Killer 回車,設(shè)置密碼, OK ,完成。

          綁定【 Killer 】到【 Jackey 】: cvs passwd -r Jackey Killer 回車,設(shè)置密碼, OK ,完成。

          兩次輸入的密碼可以不同,但以第二次輸入的密碼為最終密碼。

          刪除用戶【 Killer 】: cvs passwd -X Killer 回車, OK ,完成。

          其它特殊的功能查看 passwd 命令的幫助。

           

          11. 使用完畢后,一定要【 Logout 】,因為 WinCVS 退出時并不會自動注銷自己在遠(yuǎn)端的會話;這樣做是為了防止其它人接著打開 WinCVS ,不用登陸就可以完成你能進(jìn)行的所有操作了。

          6 WinCVS 中常見的特殊操作:

          6.1 如何刪除下載的文件或目錄:

          1. 選中下載的某個或多個文件,執(zhí)行【 Remove 】命令。

          2. 再次選中這些文件,執(zhí)行【 Commit 】命令就完成了刪除文件的操作。

          3. 本質(zhì)上 CVS 是不會刪除任何文件和目錄的,即使是執(zhí)行了以上操作,刪除了某些文件,遠(yuǎn)端 CVS 實際執(zhí)行的是將提交刪除的文件放到了一個叫【 Attic 】的目錄下,因此,這些被刪除的文件是可以通過一定的方法恢復(fù)的。

          6.2 如何恢復(fù)已經(jīng)刪除的文件或目錄:

          1. 在執(zhí)行了【 Remove 】命令之后恢復(fù)文件。

          Ctrl+L 】直接輸入命令 cvs add xxxxx ,或執(zhí)行【 Add Selection 】界面操作。

          這樣就可以直接恢復(fù)還未提交的刪除文件。

          2. 在執(zhí)行了【 Commit 】命令之后恢復(fù)文件。

          只能用【 Ctrl+L 】直接輸入命令 cvs add xxxxx ,這時會得到一個空的文件。

          選中這個空文件,執(zhí)行【 Update 】操作,得到這個文件的實體。

          再次選中這個文件,執(zhí)行【 Commit 】操作,得到這個文件最新版本。

          3. 由于 CVS 系統(tǒng)中本質(zhì)上不會刪除任何目錄,因此,談不上對目錄的恢復(fù),但是 CVS 系統(tǒng)默認(rèn)情況下是要在用戶本機上(如: YCW2000 )要刪除空目錄,因此,可以用如下方法得到已被刪除的空目錄: cvs checkout -p xxx ,也可以在 Admin=>Preference 的【 Globals 】頁面進(jìn)行設(shè)置。

          4. 可見, CVS 系統(tǒng)能夠保證:只要上傳到服務(wù)器的文件,無論你怎么在遠(yuǎn)程進(jìn)行如何的操作,正常的或非正常的操作,都可以用 Administrator 登陸上去,通過以上的方法找到丟失的文件。除非用戶進(jìn)入到遠(yuǎn)端服務(wù)器,將文件手動刪除,那就沒辦法了:)

          6.3 如何得到以前版本的文件:

           

          1. 有時我們需要得到以前版本的文件,而 WinCVS 默認(rèn)方式只傳遞最新的版本。

          2. 選中某個文件,【 Ctrl+G 】或右鍵,點按【 Graph selection …】,使用默認(rèn)設(shè)置,就可以得到該文件所以版本的圖形結(jié)構(gòu)描述。

          3. 選中一個版本,右鍵,點按【 Retrieve revision 】,就可以得到相應(yīng)的老版本文件。當(dāng)然也可以得到最新版本的文件:)

          6.4 有時 WinCVS 會變得異常緩慢,怎么辦?

           

          1. 確認(rèn)安裝了 WinCVS 的機器上沒有安裝 CVSNT 服務(wù)器端,因為它們使用的版本有可能不一致。

          2. 只安裝了 WinCVS ,但以前安裝過其它版本的 WinCVS ,怎么辦?

          3. 先卸載所有的 WinCVS 系統(tǒng),刪除安裝目錄下的殘留文件。

          4. 打開注冊表編輯器,全程查找 cvs 關(guān)鍵字,找到一個刪除一個,一直到找不到為止!!:)

          5. 重新安裝 WinCVS ,這個問題基本上就可以解決了,我就是這樣解決,不曉得你那里如何?:)

          7 其它說明:

           

          1. 本文的重點在介紹如何讓使用者搭建 CVSNT+WinCVS 這個系統(tǒng),因此重點介紹了管理員的常用操作,至于一般用戶使用到的操作,相對比較簡單和單一,使用 WinCVS 的次數(shù)多了,很快就會熟悉它了。

          2. 這篇文檔只是窺探了 CVS 的一點皮毛而已, CVS 當(dāng)中還有很多高級的用法,以及上百個命令,還有很多新鮮的管理源代碼的方法,比如: tag branch 等模式;因此,熱烈歡迎大家積極探索,不斷共享,不斷進(jìn)步。。。。。。。。

          3. 另外, cvs.html 這個幫助,里面的信息也很豐富,但是,很多地方寫得不夠清楚,需要不斷猜測和實踐才能知道怎么回事,本文的很多經(jīng)驗都是看這個幫助,如此這般,采用這個笨辦法得到的。。。。。。

          4. 最后,祝愿看到此文的人,得到的幫助、提高等好處大于或等于浪費的時間、反而退步等壞處!!

          From: http://www.kuihua.net/wendang/win1.asp



          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2006-06-02 09:25 zhyiwww 閱讀(975) 評論(2)  編輯  收藏 所屬分類: 配置管理

          FeedBack:
          # re: WINCVS與CVSNT簡明使用手則(轉(zhuǎn)載)
          2010-05-29 11:51 | tt
          我在斷網(wǎng)狀態(tài)下沒法進(jìn)行cvs操作!請問樓主怎么解決?  回復(fù)  更多評論
            
          # re: WINCVS與CVSNT簡明使用手則(轉(zhuǎn)載)
          2010-05-29 11:52 | tt
          據(jù)我所知cvs服務(wù)器是我放在公網(wǎng)上才能連接的。  回復(fù)  更多評論
            
          主站蜘蛛池模板: 灵璧县| 衡阳市| 福鼎市| 泽普县| 喀什市| 建湖县| 凉山| 南陵县| 井研县| 三门县| 即墨市| 新乡县| 合江县| 色达县| 宝鸡市| 瓮安县| 淄博市| 乳山市| 苏州市| 东光县| 隆子县| 绵竹市| 孟津县| 句容市| 曲水县| 平阳县| 祁连县| 内黄县| 禄劝| 景德镇市| 离岛区| 如东县| 开封市| 霍州市| 四会市| 兰州市| 阳高县| 兴隆县| 龙江县| 额尔古纳市| 剑阁县|