您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
CVS服務器建立和權限配置完全方案
作者:網絡轉載 發(fā)布時間:[ 2013/2/19 16:15:02 ] 推薦標簽:

  建立和配置操作都是在Redhat Linux8.0上做的。系統(tǒng)帶的CVS可執(zhí)行程序在/usr/bin下面,版本信息為:Concurrent Versions System (CVS) 1.11.2 (client/server)。系統(tǒng)帶的這個cvs可執(zhí)行程序既可以當客戶端使用,也可以用來建立cvs源代碼庫服務器。
  
  建立一個源代碼庫主要有以下幾步:
 。1)初始化cvs服務器環(huán)境。
  #cvs -d/usr/local/source init
  之后進入/usr/local/source,可以看到有一個目錄CVSROOT, 下面是初始化后的CVS服務器配置文件。暫且保持不動。
  
 。2)把cvs服務放到x.netd系統(tǒng)服務中。
  首先在/etc/xinetd.d目錄下生成任務配置文件cvspserver,文件名稱可以隨便用。
  
  其中內容大致如下:
  service cvspserver
    { 
      flags      = REUSE
      socket_type   = stream
      wait      = no
      user      = root 
      protocol    = tcp
      server     = /usr/bin/cvs
      server_args   = -f --allow-root=/usr/local/source pserver
      disable     = no
    }
  其中server_args一個參數指定了源代碼庫路徑,一個指定了服務器使用密碼認證方式。
  第二,要確認/etc/services文件中,有cvspserver關鍵詞,并分配了端口,如:cvspserver 2401/tcp。
  第三,重新啟動xinetd服務,cvs服務可以用了。
  
 。3)測試。假定cvs服務器在192.168.0.205上,系統(tǒng)上有一個用戶cvs。登陸另一臺linxu機器,執(zhí)行下列命令可以完成測試:
  $export CVSROOT=:pserver:cvs@192.168.0.205:2401/usr/local/source
  $cvs login
  輸入密碼,沒有出錯提示表示登陸成功。
  
  如果想在一個linux系統(tǒng)上建多個源代碼庫,分別提供cvs服務。重復上面步驟可以了。
  
  第一步時候要注意使用一個不同路徑。
  第二步放到xinetd系統(tǒng)服務中稍微麻煩點。/etc/xinetd.d目錄下要生成一個新的任務配置文件,例如cvspserver1,文件中service名稱一定要區(qū)分第一個,例如service cvspserver1,server_args做相應變動。還要在/etc/services文件中,加入新的服務端口號,例如:cvspserver1 2402/tcp。重新啟動xinetd服務.
  
  第三步測試時候,可以這樣設定:
  $export CVSROOT=:pserver:cvs@192.168.0.205:2402/usr/local/source1
  
  cvs作為并行版本控制系統(tǒng),多用戶讀寫是需要的。但有時候希望有些用戶只能check out,不能提交新代碼。有時希望cvs上的某些用戶不能check out一些代碼,例如和另一個開發(fā)組共用一個CVS,希望另一個組的成員不能check out自己組代碼。
  
  cvs服務器有一套自己的用戶認證機制,我使用時候沒采用,而是使用了系統(tǒng)上用戶直接作為cvs服務器用戶,采用linux組、用戶權限實現了這樣的功能。
  
  舉例說明,在linxu系統(tǒng)上模擬實際兩個開發(fā)組a、b,分別有用戶a-user1,a-user2,b-user1,b-user2。
  
  模塊a-source,希望a組成員都可以讀寫,b組成員沒有任何權限?梢允褂靡韵孪盗忻睿
  #chown -R a-user1 a-source
  #chgrp -R a a-source
  #chmod -R 770 a-source
  
  如果希望模塊a-source,只有a-user1可以寫,同組其它用戶可以讀,b組成員沒有任何權限,把chmod命令改成-R 750行了。
  
  必須說明的,cvs中默認一個用戶checkout代碼時候,會在當前模塊下生成一個鎖文件,如果這個用戶對當前模塊沒有寫權限,讀是不可能的。配合上面的權限設置,必須改一下cvs服務器配置。改成不在當前模塊目錄下生成鎖文件,把鎖文件集中到一個所有用戶都有讀寫權限的目錄。修改配置文件CVSROOT/config:
  # Put CVS lock files in this directory rather than directly in the repository.
  #LockDir=/var/lock/cvs
  把LockDir設上可以了。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd