【永恒的瞬間】
          ?Give me hapy ?

          CVS 介紹

          CVS 代表協作版本系統,這是一個將一組文件放在層次目錄樹中以保持同步的系統。人們可以從 CVS 服務器上更新他們的本地層次樹副本,并將修改的結果或新文件發回;或者刪除舊文件。
          CVS
          基于客戶端 / 服務器的行為使得其可容納多用戶,構成網絡也很方便。這一特性使得 CVS 成為位于不同地點的人同時處理數據文件 ( 特別是程序的源代碼 ) 時的首選。

          ?

          服務器

          1 。初始化 cvs 服務器環境

          cvs –d /tmp/source init

          命令在 /usr/local/sourc 下建立了 cvsroot 目錄,里面是初始化的 cvs 服務器配置文件。

          2 。把 cvs 服務器放到 xinetd

          vi /etc/xinetd.d/cvspserver 建立服務文件并添加內容

          server cvspserver

          {

          ???????? flags????????? = REUSE

          ???????? socket_type?????? = stream

          ???????? wait???????????????????? = no

          ???????? user??????????????????? = root

          ???????? protocol???????????? = tcp

          ???????? server???????????????? = /usr/bin/cvs

          ???????? server_args?????? = -f –allow-root=/tmp/source pserver

          ???????? disable?????????????? = no

          }

          其中 server_args 一個參數指定了源代碼路徑 , 一個指定了服務器使用密碼認證方式 .

          然后確保 /etc/services 文件中有以下兩行

          cvspserver 2401/tcp
          cvspserver 2401/udp

          最后重啟 xinetd 服務。

          ?

          測試

          假設 cvs 服務器在 192.168.0.192 上,系統上有一個用戶 cvs 。登陸另一臺 linux 機器,執行下列命令可以完成測試。

          $export CVSROOT :pserver:cvs@192.168.0.192:2401/tmp/source

          $cvs login

          輸入密碼,沒有錯誤提示表示登陸成功。

          $cvs logout 登出

          ?

          用戶認證

          cvs 服務器有一套自己的用戶認證機制,此方法使用了系統上用戶直接作為 cvs 服務器用戶,采用 linux 組、用戶權限實現這樣的功能。

          例如,在 linux 系統上有兩個開發組 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 設上就可以了。

          ?

          系統建立多個源代碼庫

          1 。使用一個不同路徑

          2 /etc/xinetd.d 目錄下建立一個新的任務配置文件,如 cvspserver1 ,文件中第一行 server 名稱一定要區分。如改為 server cvspserver1 server_args 做相應變動。還要在 /etc/services 文件中,加入新的服務器端口,如 cvspserver1 2402/tcp 。重啟 xinetd 即可。

          ?

          CVS 的使用流程

          1 。登入 (login) ,只需做一次。需要密碼認證,除非是允許匿名登入,否則都要輸入 CVS Server 管理者配給您的密碼。

          2 。取出 (checkout) 整份專案 ( 類似檔案下載 ) 。此時,您的硬碟中會有一份專案的原始碼目錄,我們稱之為工作目錄。

          3 。依您的程式意圖,修改某一支程式。

          4 。查詢程式的在庫狀態 (status) (3 4 這二個動作可互調或合并操作 )

          5 。視在庫狀態,比對二者的差異 (diff) ,調整修改的程式 ( 是否和他人修改的部份發生沖突,若無沖突,那就十分單純,可在修改完之後,直接存入 (commit/ci) 檔案庫 (repository) )

          6 。若有沖突,在 mailling list 中,和他人討論,取得協調。

          7 。將修改好的檔案 commit 存入 CVS 檔案柜 ( 俗稱 checkin ,類似檔案上傳 ) ,請務必在程式碼注解中,詳述您的意圖。

          8 。透過 mailling list 說明您的想法,和大家討論。

          9 。每經過一段時日,應查詢在庫狀態,并更新您的工作目錄 (update)

          posted on 2007-03-08 08:33 ???MengChuChen 閱讀(399) 評論(0)  編輯  收藏 所屬分類: VSS

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


          網站導航:
           
          主站蜘蛛池模板: 灵武市| 阜康市| 卢氏县| 聂荣县| 舞阳县| 额敏县| 通城县| 永兴县| 怀化市| 石狮市| 天门市| 太仓市| 白山市| 微博| 略阳县| 筠连县| 武定县| 平邑县| 肇州县| 达日县| 西峡县| 曲阳县| 綦江县| 靖宇县| 清远市| 阿尔山市| 中西区| 沂源县| 务川| 宝清县| 衡阳县| 镇雄县| 疏勒县| 关岭| 勃利县| 鄂托克前旗| 西昌市| 陇西县| 宜良县| 江北区| 贵溪市|