熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows服務器 >> 正文

windows下cvs服務器端配置

2013-11-23 21:50:51  來源: Windows服務器 

  CVS是目前最常用的版本控制和軟件配置系統其開源性在其普及的過程中功不可沒然而正因為開源造成了其易用性較差往往一個功能需要通過幾個看似不相干的操作配合才能進行Windows下CVS的多帳戶配置正是這樣一個相當重要的但很不好操作的功能幾個難點如下

  CVS源自Unix系統其Windows的移植版並沒有服務器功能在Windows下一般采用安裝CVSNT這個軟件來建立CVS Repository但CVSNT的操作方法和原始的CVS略微不同

  CVS本身是命令行形式其配置過程比較繁雜

  CVS的多帳戶配置需要手動修改Repository的CVSROOT文件夾裡的文件缺乏統一的界面

  在安裝了CVSNT服務器之後默認的用戶就是建立Repository的Windows系統的登陸帳戶但在多人開發的時候肯定沒人希望大家都使用同一個名字來Commit更重要的是我們可能需要配置開發人員的權限例如限制某些人只能看程序而某些人可以Commit程序某些人可以添加新的Module以下是詳細的步驟環境是CVSNT (Build ) + TortoiseCVS

   使用CVSNT建立一個Repository假設初始使用Windows的管理員administrator密碼登陸Repository使用Pserver協議IP是端口號是Repository名稱是/TestRep密碼是這時的administrator也是此Repository的管理員

   為了進行多用戶配置必須修改Repository的CVSROOT目錄的幾個文件首先在客戶端將:pserver:administrator@/TestRep設為CVSROOT環境變量(請注意區分CVSROOT目錄和CVSROOT環境變量)然後用administrator登陸到CVS最後Check Out出此CVSROOT目錄命令如下所示

  cvs login
        //輸入密碼
        cvs co CVSROOT

   在服務器端為Windows添加一個專門用於CVS操作的Windows帳戶所有的CVS帳戶都要映射到這個Windows帳戶上進行實際的操作雖然很多資料並沒有提到需要建立Windows帳戶但我在實驗中發現沒有這種帳戶CVS在後邊執行任何操作時都會報告沒有此帳戶的錯誤假如這個新的帳戶叫做cvsuser使用Windows命令

  net user cvsuser cvsuserpassword /Add

  可以添加此帳戶在添加完成之後一定要記得將/TestRep在服務器上的實際文件夾的權限裡添加cvsuser的讀寫權限否則到最後任何映射到cvsuser的CVS帳戶都會因為沒有寫權限無法進行正常的commit操作首先在服務器上的資源管理器裡的工具菜單裡找到文件夾選項在隨後出現的查看選項卡裡找到使用簡單文件夾共享的項目取消掉前面的勾單擊確定然後右擊/TestRep所在文件夾單擊屬性在隨後打開的對話框裡可以看到安全選項卡我們需要在這裡添加cvsuser的讀寫權限

  為CVS添加自己的帳戶通過使用命令cvs passwd我們可以添加任意多個CVS帳戶(當然只是針對當前的Repository)所有的帳戶信息會被保存在CVSROOT目錄的passwd文件當中然而這個文件是不能Check Out出來的只能在服務器那裡看到它並且其保存的密碼信息是被加過密的我們可以添加cvsadminuseruseranonymous等用戶例如添加cvsadmin時的命令是

  cvs passwd a r cvsuser cvsadmin
        //輸入cvsadmin的密碼
        //再次輸入cvsadmin的密碼

  這樣就新添了cvsadmin帳戶並將其映射到Windows帳戶cvsuser上(a表示添加一個賬戶r表示影射到操作系統的帳戶中我期望將cvsadmin作為以後/TestRep的管理員這一點十分重要如果這時候不設置的話再將CVS改為僅使用CVS帳戶校驗模式之後就再也沒有機會添加管理員了(因為只有管理員可以看得到和操作CVSROOT目錄)

  設定cvsadmin為CVS管理員在客戶端的CVSROOT目錄下新添一個名為admin的文件在裡面將每一個想要升為管理員的CVS帳戶的帳戶名寫到文件中每行一個帳戶名當然admin文件只有放到服務器cvsadmin的升遷才能生效但是僅僅是這麼將admin文件提交上去是不能起作用的在提交它之前必須將admin的信息添加到checkoutlist文件中checkoutlist的格式在文件中有介紹空格 文件名 空格 出錯信息 回車符我們在裡面添加一條記錄

  admin adminerror

  特別注意admin前面一定要留一個空格

  當新的CVS管理員和帳戶信息都准備好後就要將/TestRep的帳戶校驗模式從操作系統集成校驗模式修改為僅使用CVS帳戶校驗模式這麼做可以避免為了在CVS中使用多用戶時需要操作Windows帳戶的麻煩這個設置的地方在CVSROOT目錄中的config文件打開客戶端的config文件將裡面的#SystemAuth=yes改為SystemAuth=no(注意將#刪除後SystemAuth前不能有空格)修改後保存config文件

  提交CVSROOT裡的所有更新到服務器我們的設置就生效了命令如下所示

  cd CVSROOT
        cvs add m admin
        cvs commit m

  不過在提交之前你也許想先把CVSROOT的owner從原來的administrator修改為cvsadmin使用命令cvs chown可以做到這一點在提交了CVSROOT目錄後校驗模式就立刻改變了cvsadmin也同時開始生效這時用之前的administrator就無法使用CVS了我們改用cvsadmin帳戶重新登陸繼續下面的操作

  修改讀寫權限CVS有兩種讀寫權限的設置方法一是粗粒度的一是細粒度的只有CVS管理員才能進行訪問權限的修改粗粒度的方法是在CVSROOT中添加readers或者writers文件來實現在readers裡添加的任何一個帳戶對當前庫只擁有讀取權限添加格式是每行一個帳戶名例如我們在客戶端的CVSROOT目錄裡添加readers文件將之前的一個新建帳戶anonymous放到裡面然後commit這個readers文件到服務器anonymous就不能進行commit了實際的測試結果是在使用anonymous登陸之後執行commit指令系統會報告正常執行完畢但實際上沒有任何東西被commit暴露了CVS在人機界面上的不完善writers文件的操作readers完全一樣如果一個帳戶名被同時寫到兩個文件裡此帳戶只有只讀權限細粒度的方法是使用chacl命令例如/TestRep裡有個工程projectprojectproject使用命令

  cvs chacl u user a none d projectprojectproject
        cvs chacl u user a all d project
        cvs chacl u user a readwrite d project
        cvs chacl u user a read d project

  可以讓user擁有對project目錄的完全控制權對project目錄的讀寫權和對project目錄的只讀權第一條命令首先刪除user的所有權限在隨後的條命令裡分別設置了個不同目錄權限

  使用帳戶組來組織帳戶在客戶端的CVSROOT目錄下添加一個叫group的文件此文件的格式是

  組名:用戶名用戶名用戶名……
        組名:用戶名用戶名……
        ……

  修改完group文件後commit它然後通過chacl命令可以實現組權限的修改


From:http://tw.wingwit.com/Article/os/fwq/201311/29781.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.