色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > CVS完全手冊(二)

          CVS完全手冊(二)

          ——
          作者: 時間:2007-04-05 來源: 收藏

          分支管理
          =============================
          可以將歷史劃分成多個獨立,并行和互不影響的分支,并去修改歷史
          1 標定里程碑
          ------------------------------------
          cvs tag release_1_0 prj_dir_name

          2 開始一個新的里程碑:
          ------------------------------------
          cvs commit -r 2
          標記所有文件開始進入2.x的開發(fā)
          注意:里的revsion和軟件包的發(fā)布版本可以沒有直接的關系。但所有文件使用和發(fā)布版本一致的版本號比較有助于維護。

          3 建立分支
          ------------------------------------
          在開發(fā)項目的2.x版本的時候發(fā)現(xiàn)1.x有問題,但2.x又不敢用,則從先前標記的里程碑:release_1_0導出一個分支release_1_0_b2
          cvs rtag -b -r release_1_0 release_1_0_bugfixes prj_dir_name
          -r修飾的是release_1_0,-b 修飾的是release_1_0_bugfixes,cvs的版本號將變?yōu)?位,以后每分一次支,版本號增加2位

          4 分支并行開發(fā)
          ------------------------------------
          一些人先在另外一個目錄下導出release_1_0_bugfixes這個分支:解決1.0中的緊急問題,
          cvs checkout -r release_1_0_bugfixes
          分支是可以修改的,并自動提交到分支上去
          而其他人員仍舊在項目的主干分支2.x上開發(fā)

          5 tag分支
          ------------------------------------
          在release_1_0_bugfixes上修正錯誤后,標記一個1.0的錯誤修正版本號
          cvs tag release_1_0_bugfixes_p1

          6 合并分支
          ------------------------------------
          如果2.0認為這些錯誤修改在2.0里也需要,也可以在2.0的開發(fā)目錄下合并release_1_0_patch_1中的修改到當前代碼中:
          cvs update -j release_1_0_bugfixes

          7 再次合并分支
          ------------------------------------
          如果又發(fā)現(xiàn)1.x新的bug,我在分支已經(jīng)修改了,并標定了release_1_0_patch_2,我們同樣希望把它合并到主干上來
          cvs update -j release_1_0_bugfixes_p1 -j release_1_0_bugfixes
          它的意思是把release_1_0_bugfixes_p1(tag)到release_1_0_bugfixes(分支)變化了的部分合并到當前文件(主干)
          否則用6步的方法,則以前合并的內(nèi)容會重新合并
          注意:此時我們使用第5步的結(jié)果
          教訓:盡早頻繁的tag,但同時不能導致tag泛濫,tag在不同的分支里可以同名

          8 鎖定分支
          ------------------------------------
          cvs admin -l r_0_2 鎖定r_0_2分支
          cvs admin -l    鎖定主分支

          9 設置缺省分支
          ------------------------------------
          cvs admin -b r_0_2 設定r_0_2為缺省分支
          cvs admin -b    設定主分支

          10 刪除歷史記錄
            如果歷史文件過多,或確定有幾個階段的穩(wěn)定版本,我們可以刪除一些歷史文件,以保證cvs的性能
          cvs admin -o rev1:rev2 filename 刪除rev1到rev2的版本,含這兩個版本
          cvs admin -o rev1::rev2 filename 刪除rev1到rev2的版本,不含這兩個版本
          如果省略rev1,表示刪除本分支rev2之前的所有版本
          如果省略rev2,表示刪除本分支rev1之后的所有版本
          cvs admin -o rev filename 刪除rev這個版本的文件
          注意:有tag的版本不能被刪除,所以tag很重要,而且只能刪單個文件


          CVS服務器的安裝和配置
          =============================
          1 下載源碼
          ------------------------------------
            可從很多地方下載cvs,也可從官方ftp://ftp.gnu.org/gnu/cvs/下載

          2 安裝,同很多源碼安裝一樣
          ------------------------------------
            gunzip cvs-1.10.6.tar.gz
            tar xvf cvs-1.10.6.tar
            cd cvs-1.10.6
            ./configure
            make
            make install

          3 包的安裝,如果找到具體操作系統(tǒng)的安裝包,則見此操作系統(tǒng)的使用說明,比如linux為
          ------------------------------------
            rpm -ivh cvs-1.10.8-3.i386.rpm即可

          4 建立Repository
          ------------------------------------
            groupadd cvs(要訪問cvs的用戶加入此組)
            useradd cvsroot
            mkdir /home/cvsroot
            cvs -d /home/cvsroot init
            chown -R cvsroot.cvs /home/cvsroot
            chmod -R ug+rwx /homecvsroot

          5 配置/etc/services文件
          ------------------------------------
           添加cvspserver,如果有就不要加了
          cvspserver 2401/tcp # cvs client/server operations
          cvspserver 2401/udp # cvs client/server operations

          6 配置inetd
          ------------------------------------
            編輯/etc/inetd.conf,加入
          cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
            如果使用tcpwrappers
          cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs --allow-root=/usr/local/newrepos pserver
            如果使用xinetd,編輯/etc/xinetd.d/cvspserver
            service cvspserver
           {
          disable = no
          socket_type = stream
          wait = no
          user = root
          env = HOME=
          server = /usr/bin/cvs
          server_args = -f --allow-root=/home/cvsroot pserver
            }
          pserver表示是口令認證,如果要用ssh方式則應該是server
          --allow-root是Repository的目錄,可以有多個此選項來建立多個Repository

          7 驗證配置成功
            cvs login看時候能成功登錄,有幾個可能失敗的地方
            用戶是否屬于cvs組和目錄權(quán)限
            inetd是否正常配置和啟動,--allow-root是否寫對
          8 導入項目
            把你的所有項目文件放入prj_dir
            cd prj_dir
           cvs import -m "this is a cvstest project" prj_dir v_0_0_1 start
            v_0_0_1是這個分支的總標記.沒啥用(或曰不常用)
           start 是每次 import 標識文件的輸入層次的標記,沒啥用。


          Watchers
          =============================
          cvs提供了watch的功能,來幫助大家了解誰在干什么,誰在對文件做什么操作,它發(fā)email通知,以協(xié)調(diào)大家的工作。
          1 開啟watch功能
            在CVSROOT/notify文件中加入下面行
            ALL mail %s -s "CVS notification"
          2 設定外部email地址
            缺省是把通知信息發(fā)給本機的email,要發(fā)給別的地址,在CVSROOT/users加入如下內(nèi)容
            hwz:kerlion@netease.com
          3 watch文件的修改
            cvs watch add filename
            cvs watch remove filename
          4 watch文件的修改
            watch功能是個大家協(xié)調(diào)的功能,大家必須按一個統(tǒng)一的工作流程來做,如果不cvs edit,cvs沒有辦法通知修改情況
            cvs edit filename
            修改文件
            cvs unedit filename
          5 提醒大家使用watch功能
            cvs沒有強制使用watch的功能,只有這個功能在用戶提交完后自動把文件變?yōu)橹蛔x的,再使用cvs edit filename就可以修改它了
            cvs watch on
          6 查看那人人再watch
            cvs watchers


          WinCVS的安裝和配置
          =============================
          1、WinCVS簡介:
          WinCVS是CVS的一個客戶端軟件,它運行在Windows上,用來在Windows上登錄CVS服務器,然后進行一些CVS相關的操作與管理。由于當前很多的企業(yè)內(nèi)部都采用Linux/Unix做服務器,而用Windows做客戶端,所以,WinCVS與CVS服務器配合使用將組成最強有力的版本控制與管理的系統(tǒng)之一。
          2、WinCVS的下載與安裝;
            最新的WinCVS可以從http://sourceforge.net/project/showfiles.php?group_id= 10072地址下載到,也可以在http://sourceforge.net/project 上下載到最新的或其它版本的WinCVS。
            下載到相應的版本后根據(jù)向?qū)нM行安裝,已經(jīng)要使用CVS的用戶,安裝這個WinCVS應該沒什么問題吧!
          3、配置WinCVS:
          a、Admin->;Preferences…/general
             CVSROOT 按cvsroot格式填寫
             Authentication:用來配置cvs服務器的認證方式一般只要選擇默認的pserver方式就可以
                 要注意的是必須與cvs服務器配置時所指定的認證方式一致
                             如果要用ssh server,確認在windows中安裝了openssl,openssh
          a、Admin->;Preferences…/Globals
            此項的配置主要是要注意這幾選項:
            Checkout read-only:默認是選中的,建議不要修改,只是修改文件前需要先edit selection,提交后又自動變?yōu)橹蛔x
                         這樣有兩個好處:
                          一個是可以通過unedit selection來undo你做的修改
                          二是可以符合watch功能的使用規(guī)范
            Prune empty directories: 不要選上,否則,會自動刪除空目錄;
          4、登錄服務器:
             選擇Admin->;login,將出現(xiàn)如下對話框要求用戶輸入登錄口令
             wincvs中命令的exit code 0表示正確執(zhí)行,否則是失敗,一般成功顯示為
             *****CVS exited normally with code 0*****
          5、winCVS的使用都有菜單,大家熟悉cvs的使用的話,用起來是很容易的,我就不多說了


          CVSWEB的安裝
          =============================
          CVSWEB就是CVS的WEB界面,可以大大提高程序員定位修改的效率:
          使用的樣例可以看:http://www.freebsd.org/cgi/cvsweb.cgi

          CVSWEB的下載:CVSWEB從最初的版本已經(jīng)演化出很多功能界面更豐富的版本,這個是個人感覺覺得安裝設置比較方便的:
          http://www.spaghetti-code.de/software/linux/cvsweb/

          1 下載解包:
          tar zxf cvsweb.tgz

          2 把配置文件cvsweb.conf復制到apache的配置目錄下
           cp cvsweb.conf /path/to/apache/conf
          轉(zhuǎn)到/path/to/apache/conf下并修改cvsweb.conf:
          修改CVSROOT路徑設置:
          %CVSROOT = (
          'Development' =>; '/path/to/cvsroot/dev', #<==修改指向本地的CVSROOT
          'test' =>; '/path/to/cvsroot/test', #<==修改指向本地的CVSROOT
          );
          如果有多個cvsroot,這定缺省的cvsroot
          $cvstreedefault = 'test';

          3 其它個性化設置
           cvsweb.conf還有許多其它個性化設置,常見的有這些變量:
           $logo 圖標設置
           $defaulttitle 標題設施
           $address 管理員email地址設置
           $long_intro 介紹文字
           $short_instruction  說明文字

          4 把文件cvsweb.cgi復制到apache的cgi目錄
           cp cvsweb.cgi /path/to/apache/cgi-bin
           轉(zhuǎn)到/path/to/apache/cgi-bin修改cvsweb.cgi
          修改cvsweb.cgi讓CGI找到配置文件:
          $config = $ENV{'CVSWEB_CONFIG'} || '/path/to/apache/conf/cvsweb.conf';

          5 中文支持
           讓cvsweb正確顯示中文,找到sub html_header($)函數(shù),
           然后在<html>;和<title>;之間插入一行,修改如下
           <html>;
           <meta http-equiv="Content-Type" content="text/html; charset=gb2312">;
           <title>;$title</title>;
          6 復制所有的gif,png文件到apache的icons目錄
          7 增加訪問控制
          CVSWEB可不能隨便開放給所有用戶,因此需要使用WEB用戶認證:
          先生成 passwd:
          /path/to/apache/bin/htpasswd -c cvsweb.passwd user

          修改httpd.conf: 增加
          <Directory "/path/to/apache/cgi-bin/cvsweb/">;
          AuthName "CVS Authorization"
          AuthType Basic
          AuthUserFile /path/to/cvsweb.passwd
          require valid-user
          </Directory>;

           

          ==========================================================================
          參考文檔:
          CVS的常用命令速查手冊,車東,chedong@bigfoot.com
          CVS服務器與WinCVS的配置與使用,吳炎溪,Yanxi-Wu@21cn.com
          CVS速成班,作者不祥
          cvs book,Karl Fogel,kfogel@red-bean.com



          關鍵詞: CVS

          評論


          技術(shù)專區(qū)

          關閉