java思維

          正在學(xué)習(xí)中:(

          RedHat LinuxAS4 cvs 服務(wù)器搭建步驟

          根據(jù)網(wǎng)上各種文檔整理而成.=號兩邊要空格的問題折磨了我好久.

           

          1:安裝

          先檢查是否安裝CVS包

          #>rpm -qa|grep cvs

          沒有安裝的話,用下面2種方法安裝

          (1):在安裝linux的時候可以選擇安裝CVS包
          (2):另外下載CVS RPM包 自行安裝

          2:建立cvs用戶和組

          #> groupadd cvs
          #> useradd -g cvs -G cvs –d /cvsroot cvsroot
          #> passwd cvsroot

          更改目錄屬性
          chmod –R 770 /cvsroot

          3:建立CVS服務(wù)

          #more /etc/services | grep cvspserver

          看看是否有
          cvspserver 2401/tcp #CVS client/server operations
          cvspserver 2401/udp #CVS client/server operations

          如果沒有需要到/etc/service文件中增加

          建立#vi /etc/xinet.d/cvspserver 文件內(nèi)容如下

          service cvspserver
          {
          disable = no
          flags = REUSE
          socket_type = stream
          wait = no
          user = root
          server = /usr/bin/cvs
          server_args = -f --allow-root=/cvsroot pserver
          }

          該文件有特別要注意的地方,所有=號兩邊都需要空一個空格,除了"root=/cvsroot" 所有要空格的地方,不要多加空格.否則會有CVS服務(wù)不能啟動的問題

          切換到cvsroot用戶

          #cvs -d /cvsroot init

          然后重新啟動xinetd服務(wù)或者重啟動機(jī)器

          #service xinetd restart

          然后用

          #netstat -l | grep cvspserver
          or
          #netstat -l | grep 2401

          看是否有下面tcp 0 0 *:cvspserver *:* LISTEN

          說明已經(jīng)正常啟動,沒有的話請重新檢查配置過程是否有錯誤或者遺漏。最后還必須檢查防火墻的設(shè)置,把2401端口打開。

          4:用戶管理

          CVS默認(rèn)使用系統(tǒng)用戶登錄,所有系統(tǒng)用戶都可以登陸,但是這樣對系統(tǒng)不安全,我們需要獨立的用戶管理.CVS用戶名和密碼保存在CVSROOT目錄下的passwd文件中.格式

          用戶名:密碼:系統(tǒng)用戶

          #htpasswd passwd username

          用來設(shè)置用戶密碼并保存到passwd文件中.

          然后需要關(guān)閉系統(tǒng)用戶登陸使用cvs的權(quán)限,CVSROOT目錄下的config文件,把#SystemAuth=no的#去掉就可以了.

          測試登陸

          #cvs -d “:pserver:username@127.0.0.1:/cvsroot” login

          ok

           

          5 :源代碼倉庫的備份和移動
          基本上,CVS的源代碼倉庫沒有什么特別之處,完全可以用文件備份的方式進(jìn)行備份。需要注意的只是,應(yīng)該確認(rèn)備份的過程中沒有用戶提交修改,具體的做法可以是停止CVS服務(wù)器或者使用鎖等等。恢復(fù)時只需要把這些文件按原來的目錄結(jié)構(gòu)存放好,因為CVS的每一個模塊都是單獨的一個目錄,與其他模塊和目錄沒有任何瓜葛,相當(dāng)方便。甚至只需要在倉庫中刪除一個目錄或者文件,便可以刪除該模塊的一些內(nèi)容,不過并不建議這么做,使用CVS的刪除功能將會有一個歷史記錄,而對倉庫的直接刪除不留任何痕跡,這對項目管理是不利的。移動倉庫與備份相似,只需要把該模塊的目錄移動到新的路徑,便可以使用了。
          如果不幸在備份之后有過一些修改并且執(zhí)行了提交,當(dāng)服務(wù)器出現(xiàn)問題需要恢復(fù)源代碼倉庫時,開發(fā)者提交新的修改就會出現(xiàn)版本不一致的錯誤。此時只需要把CVS相關(guān)的目錄和文件刪除,即可把新的修改提交。

          6.更進(jìn)一步的管理
          CVSROOT目錄下還有很多其他功能,其中最重要的就是modules文件。這個文件定義了源代碼庫的模塊,下面是一個例子:

          代碼:
          Linux    Linux
          Kernel   Linux/kernel


          這個文件的內(nèi)容按行排列,每一行定義一個模塊,首先是模塊名,然后是模塊路徑,這是相對于CVS根目錄的路徑。它定義了兩個模塊,第一個是Linux模塊,它位于Linux目錄中,第二個是Kernel模塊,這是Linux模塊的子模塊。
          modules文件并非必須的,它的作用相當(dāng)于一個索引,部分CVS客戶端軟件通過它可以快速找到相應(yīng)的模塊,比如WinCVS。

          7.協(xié)同開發(fā)的問題
          默認(rèn)方式下,CVS允許多個用戶編輯同一個文件,這對一個協(xié)作良好的團(tuán)隊來說不會有什么問題,因為多個開發(fā)者同時修改同一個文件的同一部分是不正常的,這在項目管理中就應(yīng)該避免,出現(xiàn)這種情況說明項目組內(nèi)部沒有統(tǒng)一意見。而多個開發(fā)者修改文件的不同部分,CVS可以很好的管理。
          如果覺得這種方式難以控制,CVS也提供了解決辦法,可以使用cvs admin -l進(jìn)行鎖定,這樣一個開發(fā)者正在做修改時CVS就不會允許其他用戶checkout。這里順便說明一下文件格式的問題,對于文本格式,CVS可以進(jìn)行歷史記錄比較、版本合并等工作,而二進(jìn)制文件不支持這個操作,比如word文檔、圖片等就應(yīng)該以二進(jìn)制方式提交。對于二進(jìn)制方式,由于無法進(jìn)行合并,在無法保證只有一個用戶修改文件的情況下,建議使用加鎖方式進(jìn)行修改。必須注意的是,修改完畢記得解鎖。
          從1.6版本開始,CVS引入了監(jiān)視的概念,這個功能可以讓用戶隨時了解當(dāng)前誰在修改文件,并且CVS可以自動發(fā)送郵件給每一個監(jiān)視的用戶告知最新的更新。

          8.建立多個源代碼倉庫
          如果需要管理多個開發(fā)組,而這些開發(fā)組之間不能互相訪問,可以有2個辦法:
          a.共用一個端口,需要修改cvspserver文件,給server_args指定多個源代碼路徑,即多個—allow-root參數(shù)。由于xinetd的server_args長度有限制,可以在cvspserver文件中把服務(wù)器的設(shè)置重定向到另外一個文件,如:

          代碼:
          server = /home/cvsroot/cvs.run


          然后創(chuàng)建/home/cvsroot/cvs.run文件,該文件必須可執(zhí)行,內(nèi)容格式為:

          代碼:
          #!/bin/bash
          /usr/bin/cvs -f \
          --allow-root=/home/cvsroot/src1 \
          --allow-root=/home/cvsroot/src2 \
          pserver


          注意此時源代碼倉庫不再是/home/cvsroot,進(jìn)行初始化的時候要分別對這兩個倉庫路徑進(jìn)行初始化,而不再對/home/cvsroot路徑進(jìn)行初始化。
          b.采用不同的端口提供服務(wù)
          重復(fù)第2步和第3步,為不同的源代碼倉庫創(chuàng)建不同服務(wù)名的啟動腳本,并為這些服務(wù)名指定不同的端口,初始化時也必須分別進(jìn)行初始化。
           
           

           

           

          posted on 2008-05-25 02:04 john 閱讀(430) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 梧州市| 高碑店市| 玉溪市| 任丘市| 武定县| 隆化县| 珠海市| 南阳市| 荣昌县| 宜昌市| 株洲县| 那坡县| 黎川县| 济宁市| 县级市| 奉节县| 响水县| 塔河县| 德令哈市| 手机| 博湖县| 威远县| 抚州市| 塔城市| 铜陵市| 黄冈市| 温州市| 温泉县| 乌拉特中旗| 永康市| 鹤壁市| 满城县| 仙游县| 巴南区| 那曲县| 新邵县| 大新县| 资溪县| 无为县| 怀安县| 类乌齐县|