1
、前言:
CVS
是版本控制的利器,目前在
Linux
和
Windows
下都有不同版本;但是國內大多數應用介紹都是基于
Linux
等開放源代碼的開放性軟件組織,而且講解的也不系統,讓人摸不著頭腦;
Windows
下的
CVS
使用介紹更是了了無幾。
本文是針對
Windows
的
LAN
環境下使用
CVS
的經驗介紹,一步一步的向您介紹如何配置和使用
CVS
的服務器端和客戶端。同時,本文只使用到了
CVS
當中最基本的東西,還有很多更為高級的東西,本文暫不涉及。下面是本文的另一個連接映射,歡迎大家討論使用,共同進步。
文章連接
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
、服務器端
(CVSNT)
1.
本文使用的是
CVSNT-2.0.4
,這是一個比較穩定的版本,不要使用最新的
CVSNT-2.1.1
,本人在使用中發現有比較嚴重的
Bug
。
2.
下載連接
http://www.cvsnt.org
目前,它提供
2.0.6
和
2.1.1
版本的下載。
3.
上面連接還提供源代碼,有興趣的朋友還可以下載下來仔細研究:)。
4.
有心的朋友,仔細觀察就會發現
http://www.cvsnt.org
并沒有提供任何客戶端的下載,那是因為
CVS.exe
既可以用于服務器端又可以用于客戶端,
WinCVS
是為了客戶端使用的方便而定制的外殼。(關于這一點,本人未得到任何證實,只是本人在使用過程中的一種體會,歡迎大家討論。)
2.2
、客戶端
(WinCVS)
1.
本文使用的是
WinCVS-1.3b13
,這應該是一個最新版本:),本人在使用過程中并沒有發現有任何嚴重的
Bug
。
2.
下載連接
http://sourceforge.net/projects/cvsgui/
3.
此網站還提供豐富的
CVS
文檔和相關源代碼,以及多個
OS
下面的相關文檔和代碼;有收藏癖的朋友有福了:)。
4. WinCVS-1.3b13
使用的
CVSNT
的版本是
CVSNT-2.0.2
,在與服務器端的
CVSNT-2.0.4
版本配合使用時,未發現任何不兼容或沖突現象。
5.
在本人的系統中用
cvs version
命令顯示的結果如下:
Client: Concurrent Versions System (CVSNT) 2.0.2 (client/server)
Server: Concurrent Versions System (CVSNT) 2.0.4 (client/server)
3
、服務器端
(CVSNT)
的安裝與配置:
3.1
、服務器端機器和環境配置:
1.
操作系統:
Windows 2000 Professional SP2
中文版
2.
機器名稱:
Server
3.
機器地址:
192.168.0.6 (
內部
IP)
4.
網絡環境:
100
兆交換局域網
5.
硬盤分區格式:
FAT32
與
NTFS
都可以。
6.
準備
2
個
CVSNT
的工作目錄:
F:\KHRoot (
存放自己源代碼的根目錄
)
F:\KHTemp (
存放
CVS
出錯信息的目錄
)
7.
本機上存在有的用戶列表:(由
NT
或本機的使用者創建)
Administrator (
系統管理員
)
Jackey (
普通用戶
)
Goury (
普通用戶
)
Riolee (
普通用戶
)
3.2
、安裝
CVSNT
:
1.
下載
CVSNT-2.0.4
;使用
administrator
登陸到
Server
機器上。
2.
雙擊自解壓的
exe
文件,選擇
Full Install
,其它按照默認方式安裝;安裝完畢后可以在服務控制器中發現多了
2
個服務:
cvsnt
與
cvslocking
3.
發送
Service Control Panel
到桌面,形成快捷方式。
4.
安裝程序會自動將
CVS
安裝路徑,設置到系統的
Path
環境變量當中,因此使用者可以在控制臺
(cmd)
中任意位置執行
cvs.exe
,這一點對下面的配置很重要!!
3.3
、配置
CVSNT
服務器:
1.
雙擊
Service Control Panel
快捷方式,在
Service Status
頁面,確認
2
個服務正常和穩定運行。
2.
選擇
Repository
頁面,點按
Add
按鈕,選擇已經準備好的
F:\KHRoot
這個目錄,確認,
OK
,
Yes
,這時會在
F:\KHRoot
下面建立
CVSRoot
目錄,這是
CVS
默認的管理目錄(默認模塊)。如果報錯,那是系統
Path
路徑未設置正確。
3.
選擇
Advanced
頁面,勾上
Use local users for pserver ...
,(
Why? I don
’
t know!J
)
,
在
Temporary
欄選擇已經準備好的
F:\KHTemp
,確認,
OK
。
4.
點按【應用】按鈕,確認,退出,
OK
,搞定!!
3.4
、小結:
1.
至此,
CVSNT
服務器端基本配置完畢,下面進行
WinCVS
的使用和管理。
2.
由于
CVS
支持遠程管理,也就是客戶端與服務器集成的特性,因此,我們將添加用戶、權限控制、模塊維護等所有的管理工作都放到遠端
(WinCVS)
進行管理,服務器端這時可以
Ctrl+Atl+Del
進入鎖定狀態了,下面的所有工作都交給遠端的
WinCVS
來進行管理。
4
客戶端
(WinCVS)
的安裝與配置:
4.1
客戶端機器和環境配置:
1.
操作系統:
Windows 2000 Professional SP2
中文版
2.
機器名稱:
YCW2000
3.
機器地址:
192.168.0.2 (
內部
IP)
4.
網絡環境:
100
兆交換局域網,可以直接訪問到
Server
5.
硬盤分區格式:
FAT32
與
NTFS
都可以。
4.2
安裝
WinCVS
:
1.
下載
WinCVS 1.3b13
,全部按照默認安裝就可以了。
2.
啟動
WinCVS
,開始使用。特別注意:以下的所有操作都是在
YCW2000(192.168.0.2)
這臺機器上遠程完成的,此時的
Server(192.168.0.6)
主機已經進入了鎖定狀態。
5
管理員使用
WinCVS
進行遠程管理:
5.1
配置
WinCVS
成管理員狀態:
1.
準備管理員工作目錄:
(
在
YCW2000
機器上
)
E:\CVSClient\Admin (
管理員工作目錄
)
E:\CVSTemp (WinCVS
臨時目錄
)
2.
第一次啟動
WinCVS
時會自動彈出
Preferences
配置頁面,也可以通過
Admin=>Preference
菜單進入;第一次使用時需要配置如下的
3
個頁面:
General
頁面設置:
注:按照圖示方式輸入即可,需要注意的是
Path
部分的格式是
Unix
路徑格式,它指的是
CVSNT
端設置的工作根目錄。
CVS
頁面設置:
注:
Home
路徑是設置密碼等文件的存放位置,必須指定,否則在登陸時,
WinCVS
也要彈出設置框。這個
Home
路徑需要
Python.exe
這個外掛程序才有效。這里選擇已經準備好的路徑:
E\CVSTemp
WinCVS
頁面設置:
注:此頁面設置
WinCVS
的外掛編輯程序,通常使用
UltraEdit
比較方便。
3.
設置管理員的工作路徑:可以點按圖標
,或
View=>Browse Location=>Change
…菜單進行設置,選擇已經準備好的路徑:
E:\CVSClient\Admin
,確認,
OK
,這時此目錄將出現在
WinCVS
的左邊導航欄【
Workspace
】內。
4.
至此,
WinCVS
就被配置成了遠程的管理員使用狀態,下面進行一般管理員需要的基本操作演練。演練的內容為:
Administrator
需要管理
Jackey
,
Goury
,
Riolee
三個用戶,分別為這
3
個用戶建立工作目錄,每個人只能訪問自己的工作目錄。同時,只有
Administrator
能夠進行權限分配,其它人沒有任何管理權限。
5.2
管理員進行管理演練:
1.
登陸遠程
CVSNT
:
◇
選擇
Admin=>Login
菜單,默認設置,
OK
。
◇
彈出密碼輸入框,確認,
OK
。注意觀察輸出框【
OutPut
】的返回結果。
2. Checkout
默認模塊:(
CVSRoot
管理模塊)
◇
在左邊導航欄【
Workspace
】內,選擇【
Admin
】點按右鍵,選擇【
Checkout
modules
…】,在【
Checkout settings
】中輸入
CVSRoot
,確定,
OK
。如下圖:
◇
如果成功的話,會在【
Admin
】欄下增加一個【
CVSRoot
】目錄。表示您已經將【
CVSRoot
】這個管理模塊下載到本地了。
3. CVS
中目錄權限介紹:
◇
系統支持的目錄權限列表:
r (
讀取權限
)
w (
寫入權限
)
c (
創建和刪除權限
)
n (
沒有任何權限
)
◇
默認情況下,任何用戶都擁有任何目錄的所有權限。
◇
任何情況下只有目錄的擁有者和
Administrator
才有權力更改目錄的使用權限。下面將會介紹如何修改目錄權限和目錄的擁有者。
4.
修改
CVSRoot
的權限:只讓
Administrator
擁有
rcw
三種全部權限。
◇
選中剛剛下載的【
CVSRoot
】模塊,【
Ctrl+L
】或
Admin=>Command Line
…,彈出
Command Line Settings
對話框,直接執行
CVS
命令。
◇
取消所有用戶的默認權限:
cvs chacl default:n
回車,
OK
,完成。
◇
設置
Administrator
擁有所有權限:
cvs chacl administrator:rcw
回車,
OK
,完成。
◇
更改【
CVSRoot
】的擁有者:
cvs chown administrator
回車,
OK
,完成。
◇
查看【
CVSRoot
】的權限狀態:
cvs lsacl
回車,
OK
,在【
Output
】中顯示:
Owner: administrator
default:n
administrator:rwc
◇【
CVSRoot
】的權限配置完畢。
5.
編寫代碼庫中的模塊文件,便于多用戶下載方便。
l
需要自己編寫的模塊文件格式如下:
(
實現基本功能
)
【模塊一的描述】【
n
個空格或參數】【相對目錄路徑一
(DirA)
】
【模塊二的描述】【
n
個空格或參數】【相對目錄路徑二
(DirB)
】
……
【模塊
X
的描述】【
n
個空格或參數】【相對目錄路徑
X(DirX)
】
◇【描述信息】與【相對路徑】在字面上不一致時,需要使用
-a
參數。
◇
【相對路徑】指的是
CVS
會自動帶上根路徑,這里是
F:\KHRoot
,所以上面例子的完整路徑為:
F:\KHRoot\DirA
◇
了解了模塊文件結構,現在來實際操作一把:雙擊【
CVSRoot
】模塊下的
modules
文件,用
UltraEdit
打開進行編輯。
◇
為
Jackey
,
Goury
,
Riolee
三個用戶分配工作目錄和完成其它模塊描述。
CVSRoot CVSRoot
Jackey
工作目錄
-a Jackey
Goury
工作目錄
-a Goury
Riolee
工作目錄
-a Riolee
◇
編輯完畢,存盤。回到
WinCVS
,選中
modules
這個文件【
Ctlr+M
】或右鍵選擇【
Commit selection
…】,默認設置,【確認】,
OK
,完成上傳。
6 .
為三個用戶分別上傳工作目錄:
◇
在
YCW2000
機器上的
E:\CVSClient\Admin
分別建立三個目錄分別名為:
Jackey
,
Goury
,
Riolee
,作為臨時交換目錄。
◇
在新創建的每個目錄中用
UltraEdit
或拷貝一個
Readme.txt
作為引子文件!!:)
◇
然后,回到
WinCVS
,在【
Workspace
】欄的【
Admin
】目錄下形成如下的目錄結構:
◇
分別選中
Goury
,
Jackey
,
Riolee
,右鍵,點按【
Import Module
】,選擇【
Continue
】,其它全部使用默認值,【確定】,
OK
,完成上傳工作。
◇
仔細觀察【
Output
】窗口,確認都成功上傳了。
◇
轉移到系統的
Explore
程序中,刪除
E:\CVSClient\Admin
目錄下的
Jackey
,
Goury
,
Riolee
三個目錄。然后回到
WinCVS
當中。
(
一定要刪除!!!:
)
◇
至此,就完成了工作目錄的上傳工作。
7.
【
Checkout
】下載
3
個用戶的工作目錄到【
Admin
】目錄下:
◇
在【
Workspace
】欄選擇【
Admin
】目錄,右鍵,點按【
Checkout Module
…】
,
如下圖:
◇
選擇【…】,得到
CVSNT
上最新的模塊配置情況,彈出如下的信息框:
◇
這個結構圖就是剛才在
modules
當中編寫的模塊文件格式信息。選擇【
Jackey
工作目錄】,下載到
YCW2000
機器的
E:\CVSClient\Admin
目錄下。
◇
按照以上操作,依次分別下載【
Goury
工作目錄】和【
Riolee
工作目錄】。形成如下狀態:
8.
為三個用戶分別設置各自目錄的訪問權限。(只有自己才能訪問自己的工作目錄)
◇
選中【
Goury
】目錄,【
Ctrl+L
】或
Admin=>Command Line
…,彈出
Command Line Settings
對話框,直接執行
CVS
命令。
◇
取消所有用戶的默認權限:
cvs chacl default:n
回車,
OK
,完成。
◇
設置
Goury
擁有所有權限:
cvs chacl goury:rcw
回車,
OK
,完成。
◇
查看【
CVSRoot
】的權限狀態:
cvs lsacl
回車,
OK
,在【
Output
】中顯示:
Owner: administrator
default:n
goury:rwc
◇
按照以上的方法依次分別設置【
Jackey
】與【
Riolee
】的工作目錄訪問權限。
◇
至此,完成了
3
個用戶的目錄權限分配。注意,雖然
Administrator
也沒有權力再次【
Checkout
】那
3
個用戶的工作目錄,但是它是這些目錄的擁有者又是
Administrator
,因此,只有它才有權力更改這些目錄的訪問權限。
9. CVSNT
系統中的用戶管理原則:
◇
CVSNT
的用戶與本機
(
這里是
Server
機器
)
上的
NT
用戶是相關聯的,即
CVSNT
用的全是本機上存在的已有用戶,因此在默認情況下可以不用設置任何用戶名,只要使用本機上已經存在的用戶名就可以用
WinCVS
進行登陸。
◇
只有用
Administrator
身份登陸到
CVSNT
系統中,才有權力進行新用戶的創建和刪除。
◇
使用
CVS
創建的新用戶,必須與服務器端機器上的
NT
用戶相綁定,才能生效;因此,這個新用戶實際上是綁定它的
NT
用戶的一個替身,在
CVS
系統中稱為“別名”。
◇
一個
NT
用戶可以有多個‘替身’或‘別名’,充當多個
CVS
用戶。
10.
用
WinCVS
進行新用戶的添加和刪除。
(
確保使用
Administrator
登陸
)
◇
【
Ctrl+L
】或
Admin=>Command Line
…,彈出
Command Line Settings
對話框,直接執行
CVS
命令。
◇
添加新用戶【
Killer
】:
cvs passwd -a Killer
回車,設置密碼,
OK
,完成。
◇
綁定【
Killer
】到【
Jackey
】:
cvs passwd -r Jackey Killer
回車,設置密碼,
OK
,完成。
◇
兩次輸入的密碼可以不同,但以第二次輸入的密碼為最終密碼。
◇
刪除用戶【
Killer
】:
cvs passwd -X Killer
回車,
OK
,完成。
◇
其它特殊的功能查看
passwd
命令的幫助。
11.
使用完畢后,一定要【
Logout
】,因為
WinCVS
退出時并不會自動注銷自己在遠端的會話;這樣做是為了防止其它人接著打開
WinCVS
,不用登陸就可以完成你能進行的所有操作了。
6 WinCVS
中常見的特殊操作:
6.1
如何刪除下載的文件或目錄:
1.
選中下載的某個或多個文件,執行【
Remove
】命令。
2.
再次選中這些文件,執行【
Commit
】命令就完成了刪除文件的操作。
3.
本質上
CVS
是不會刪除任何文件和目錄的,即使是執行了以上操作,刪除了某些文件,遠端
CVS
實際執行的是將提交刪除的文件放到了一個叫【
Attic
】的目錄下,因此,這些被刪除的文件是可以通過一定的方法恢復的。
6.2
如何恢復已經刪除的文件或目錄:
1.
在執行了【
Remove
】命令之后恢復文件。
◇
【
Ctrl+L
】直接輸入命令
cvs add xxxxx
,或執行【
Add Selection
】界面操作。
◇
這樣就可以直接恢復還未提交的刪除文件。
2.
在執行了【
Commit
】命令之后恢復文件。
◇
只能用【
Ctrl+L
】直接輸入命令
cvs add xxxxx
,這時會得到一個空的文件。
◇
選中這個空文件,執行【
Update
】操作,得到這個文件的實體。
◇
再次選中這個文件,執行【
Commit
】操作,得到這個文件最新版本。
3.
由于
CVS
系統中本質上不會刪除任何目錄,因此,談不上對目錄的恢復,但是
CVS
系統默認情況下是要在用戶本機上(如:
YCW2000
)要刪除空目錄,因此,可以用如下方法得到已被刪除的空目錄:
cvs checkout -p xxx
,也可以在
Admin=>Preference
的【
Globals
】頁面進行設置。
4.
可見,
CVS
系統能夠保證:只要上傳到服務器的文件,無論你怎么在遠程進行如何的操作,正常的或非正常的操作,都可以用
Administrator
登陸上去,通過以上的方法找到丟失的文件。除非用戶進入到遠端服務器,將文件手動刪除,那就沒辦法了:)
6.3
如何得到以前版本的文件:
1.
有時我們需要得到以前版本的文件,而
WinCVS
默認方式只傳遞最新的版本。
2.
選中某個文件,【
Ctrl+G
】或右鍵,點按【
Graph selection
…】,使用默認設置,就可以得到該文件所以版本的圖形結構描述。
3.
選中一個版本,右鍵,點按【
Retrieve revision
】,就可以得到相應的老版本文件。當然也可以得到最新版本的文件:)
6.4
有時
WinCVS
會變得異常緩慢,怎么辦?
1.
確認安裝了
WinCVS
的機器上沒有安裝
CVSNT
服務器端,因為它們使用的版本有可能不一致。
2.
只安裝了
WinCVS
,但以前安裝過其它版本的
WinCVS
,怎么辦?
3.
先卸載所有的
WinCVS
系統,刪除安裝目錄下的殘留文件。
4.
打開注冊表編輯器,全程查找
cvs
關鍵字,找到一個刪除一個,一直到找不到為止!!:)
5.
重新安裝
WinCVS
,這個問題基本上就可以解決了,我就是這樣解決,不曉得你那里如何?:)
7
其它說明:
1.
本文的重點在介紹如何讓使用者搭建
CVSNT+WinCVS
這個系統,因此重點介紹了管理員的常用操作,至于一般用戶使用到的操作,相對比較簡單和單一,使用
WinCVS
的次數多了,很快就會熟悉它了。
2.
這篇文檔只是窺探了
CVS
的一點皮毛而已,
CVS
當中還有很多高級的用法,以及上百個命令,還有很多新鮮的管理源代碼的方法,比如:
tag
,
branch
等模式;因此,熱烈歡迎大家積極探索,不斷共享,不斷進步。。。。。。。。
3.
另外,
cvs.html
這個幫助,里面的信息也很豐富,但是,很多地方寫得不夠清楚,需要不斷猜測和實踐才能知道怎么回事,本文的很多經驗都是看這個幫助,如此這般,采用這個笨辦法得到的。。。。。。
4.
最后,祝愿看到此文的人,得到的幫助、提高等好處大于或等于浪費的時間、反而退步等壞處!!
From: http://www.kuihua.net/wendang/win1.asp
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://www.aygfsteel.com/zhyiwww
|----------------------------------------------------------------------------------------|