windows下cvs服務器端配置

字號:

CVS是目前最常用的版本控制和軟件配置系統(tǒng)。其開源性在其普及的過程中功不可沒,然而正因為開源造成了其易用性較差。往往一個功能需要通過幾個看似不相干的操作配合才能進行。Windows下CVS的多帳戶配置正是這樣一個相當重要的,但很不好操作的功能。幾個難點如下:
     CVS源自Unix系統(tǒng),其Windows的移植版并沒有服務器功能。在Windows下一般采用安裝CVSNT這個軟件來建立CVS Repository,但CVSNT的操作方法和原始的CVS略微不同。
     CVS本身是命令行形式,其配置過程比較繁雜。
     CVS的多帳戶配置需要手動修改Repository的CVSROOT文件夾里的文件,缺乏統(tǒng)一的界面。
     在安裝了CVSNT服務器之后,默認的用戶就是建立Repository的Windows系統(tǒng)的登陸帳戶,但在多人開發(fā)的時候,肯定沒人希望大家都使用同一個名字來Commit;更重要的是,我們可能需要配置開發(fā)人員的權限,例如限制某些人只能看程序,而某些人可以Commit程序,某些人可以添加新的Module。以下是詳細的步驟,環(huán)境是CVSNT 2.5.03 (Build 2151) + TortoiseCVS 1.8.25:
     1. 使用CVSNT建立一個Repository。假設初始使用Windows的管理員administrator密碼登陸,Repository使用Pserver協(xié)議,IP是1.2.3.4,端口號是2401,Repository名稱是/TestRep,密碼是123。這時的administrator也是此Repository的管理員。
     2. 為了進行多用戶配置,必須修改Repository的CVSROOT目錄的幾個文件。首先在客戶端將:pserver:administrator@1.2.3.4/TestRep設為CVSROOT環(huán)境變量(請注意區(qū)分CVSROOT目錄和CVSROOT環(huán)境變量)。然后用administrator登陸到CVS,最后Check Out出此CVSROOT目錄。命令如下所示:
     cvs login
     //輸入密碼123
     cvs co CVSROOT
     3. 在服務器端為Windows添加一個專門用于CVS操作的Windows帳戶。所有的CVS帳戶都要映射到這個Windows帳戶上進行實際的操作。雖然很多資料并沒有提到需要建立Windows帳戶,但我在實驗中發(fā)現(xiàn)沒有這種帳戶,CVS在后邊執(zhí)行任何操作時都會報告沒有此帳戶的錯誤。假如這個新的帳戶叫做cvsuser。使用Windows命令
     net user cvsuser cvsuserpassword /Add
     可以添加此帳戶。在添加完成之后,一定要記得將/TestRep在服務器上的實際文件夾的權限里添加cvsuser的讀寫權限,否則到最后任何映射到cvsuser的CVS帳戶都會因為沒有寫權限無法進行正常的commit操作。首先在服務器上的資源管理器里的“工具”菜單里找到“文件夾選項”,在隨后出現(xiàn)的“查看”選項卡里找到“使用簡單文件夾共享”的項目,取消掉前面的勾,單擊確定。然后右擊/TestRep所在文件夾,單擊“屬性”。在隨后打開的對話框里可以看到“安全”選項卡。我們需要在這里添加cvsuser的讀寫權限。
     4.為CVS添加自己的帳戶。通過使用命令cvs passwd我們可以添加任意多個CVS帳戶(當然,只是針對當前的Repository)。所有的帳戶信息會被保存在CVSROOT目錄的passwd文件當中。然而這個文件是不能Check Out出來的,只能在服務器那里看到它,并且其保存的密碼信息是被加過密的。我們可以添加cvsadmin,user1,user2,anonymous等用戶。例如添加cvsadmin時的命令是:
     cvs passwd -a -r cvsuser cvsadmin
     //輸入cvsadmin的密碼
     //再次輸入cvsadmin的密碼
     這樣就新添了cvsadmin帳戶,并將其映射到Windows帳戶cvsuser上(-a表示添加一個賬戶,-r表示影射到操作系統(tǒng)的帳戶中。我期望將cvsadmin作為以后/TestRep的管理員。這一點十分重要,如果這時候不設置的話,再將CVS改為“僅使用CVS帳戶校驗模式”之后就再也沒有機會添加管理員了(因為只有管理員可以看得到和操作CVSROOT目錄)。