<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          CVS完全手冊(cè)(二)

          ——
          作者: 時(shí)間:2007-04-05 來(lái)源: 收藏

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

          2 開(kāi)始一個(gè)新的里程碑:
          ------------------------------------
          cvs commit -r 2
          標(biāo)記所有文件開(kāi)始進(jìn)入2.x的開(kāi)發(fā)
          注意:里的revsion和軟件包的發(fā)布版本可以沒(méi)有直接的關(guān)系。但所有文件使用和發(fā)布版本一致的版本號(hào)比較有助于維護(hù)。

          3 建立分支
          ------------------------------------
          在開(kāi)發(fā)項(xiàng)目的2.x版本的時(shí)候發(fā)現(xiàn)1.x有問(wèn)題,但2.x又不敢用,則從先前標(biāo)記的里程碑:release_1_0導(dǎo)出一個(gè)分支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的版本號(hào)將變?yōu)?位,以后每分一次支,版本號(hào)增加2位

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

          5 tag分支
          ------------------------------------
          在release_1_0_bugfixes上修正錯(cuò)誤后,標(biāo)記一個(gè)1.0的錯(cuò)誤修正版本號(hào)
          cvs tag release_1_0_bugfixes_p1

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

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

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

          9 設(shè)置缺省分支
          ------------------------------------
          cvs admin -b r_0_2 設(shè)定r_0_2為缺省分支
          cvs admin -b    設(shè)定主分支

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


          CVS服務(wù)器的安裝和配置
          =============================
          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)的安裝包,則見(jiàn)此操作系統(tǒng)的使用說(shuō)明,比如linux為
          ------------------------------------
            rpm -ivh cvs-1.10.8-3.i386.rpm即可

          4 建立Repository
          ------------------------------------
            groupadd cvs(要訪問(wèn)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表示是口令認(rèn)證,如果要用ssh方式則應(yīng)該是server
          --allow-root是Repository的目錄,可以有多個(gè)此選項(xiàng)來(lái)建立多個(gè)Repository

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


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


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


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

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

          1 下載解包:
          tar zxf cvsweb.tgz

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

          3 其它個(gè)性化設(shè)置
           cvsweb.conf還有許多其它個(gè)性化設(shè)置,常見(jiàn)的有這些變量:
           $logo 圖標(biāo)設(shè)置
           $defaulttitle 標(biāo)題設(shè)施
           $address 管理員email地址設(shè)置
           $long_intro 介紹文字
           $short_instruction  說(shuō)明文字

          4 把文件cvsweb.cgi復(fù)制到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 復(fù)制所有的gif,png文件到apache的icons目錄
          7 增加訪問(wèn)控制
          CVSWEB可不能隨便開(kāi)放給所有用戶,因此需要使用WEB用戶認(rèn)證:
          先生成 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的常用命令速查手冊(cè),車東,chedong@bigfoot.com
          CVS服務(wù)器與WinCVS的配置與使用,吳炎溪,Yanxi-Wu@21cn.com
          CVS速成班,作者不祥
          cvs book,Karl Fogel,kfogel@red-bean.com



          關(guān)鍵詞: CVS

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();