中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

        CVS完全手冊(一)

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

        內(nèi)容
        概述
        環(huán)境設(shè)置
        登錄服務(wù)器: 
        cvs命令格式
        的日常使用
        其他常用命令
        CVS宏/keyword
        CVS分支管理
        CVS服務(wù)器的安裝和配置
        Watchers
        WinCVS的安裝和配置
        CVSWEB的安裝


        概述
        ==================================

        CVS是一個并行版本控制系統(tǒng),它采用C/S模式,它的復雜度和功能性屬于中等,是當今最流行的版本控制系統(tǒng)。它有兩個基本的特點:
        *保存修改記錄:保存了所有文件的修改歷史,并可以建立分支
        *協(xié)作與并行:cvs不推薦使用lock-modify-unlock的串行的工作模式,而采用多人可以并行地修改同一個文件,而在提交時merge conflict;它更適合于大型的工作團體。
        使用CVS的好處:
        *文件集中管理,大家都可以方便的看到所有人員的最新文件,規(guī)范化了文件的管理
        *可以查看以前任何的一個版本或修改歷史
        *可以同時維護多個版本和分支


        CVS環(huán)境設(shè)置
        ==================================

        先不要管CVS服務(wù)器的配置,我們先假設(shè)已經(jīng)有一臺配置好的服務(wù)器,要訪問CVS,必需先設(shè)置環(huán)境變量CVSROOT
        CVSROOT=:pserver:user@server#port:/path/to/cvsroot

        *pserver是訪問方式,口令認證的意思,這是最常用的方式,其他還有g(shù)server,kserver,ext
        *user是CVS服務(wù)器的用戶名,
        *server是CVS服務(wù)器的名稱或者IP地址
        */path/to/cvsroot是你的CVS服務(wù)器的CVSROOT目錄,根據(jù)你的CVS服務(wù)器設(shè)置做修改或者詢問管理員
        你可以把設(shè)置放到你的shell的profile里(.bash_profile,.profile等)這樣就不用每次敲一長串命令了

        高級功能:現(xiàn)在比較流行是使用ssh來加密口令和數(shù)據(jù)流
        CVSROOT=:ext:user@server#port:/path/to/cvsroot
        CVS_RSH=ssh
        hints:
        實際上沒有CVSROOT也可以,你可以每次用cvs -d :pserver:user@server#port: /path/to/cvsroot來訪問,而且它將忽略CVSROOT環(huán)境變量 ,也許你會笑我只有瘋子才這么用,不過,cvs可以把每次使用的命令參數(shù)放到一個文件中,所以在~/.cvsrc中加入
        cvs -d :pserver:user@server#port:/path/to/cvsroot
        即可,它最大的好處是修改了立刻生效,而且它的優(yōu)先級高于CVSROOT環(huán)境變量,到時候不要傻乎乎地來問我,我的環(huán)境變量真么不起作用了。


        登錄CVS服務(wù)器: 
        ==================================
        $cvs login,這時候cvs會問你口令,請把你在CVS服務(wù)器上的口令敲進去
        如果沒有任何錯誤信息,恭喜你,成功了!
        成功登錄后將建立一個~/.cvspass文件,保存你的口令,以后就不用輸入口令了.

        cvs命令格式
        ==================================
        cvs [global_opts] command [command_opts] [command_args]
        Global options 屬于左邊cvs的,是全局的
        command_opts   屬于左邊command的,是局部的
        cvs --help-commands查看命令列表
        cvs -H command/cvs -help command 查看該命令的選項
        hints:如果你每次使用一些命令都帶同樣的參數(shù)的話,可以把它們放到~/.cvsrc文件中去
        update -c
        diff -c
        add -kb
        cvs -Q


        cvs global-option comand comand-option arguments

        CVS的日常使用
        ==================================
        CVS使用流程
           a checkout 盡當本地沒有working copy時使用
           b staus 檢查服務(wù)器上是否有新版本
           c update 如果有,則用update同步文件
           d 做你自己的修改,并保證正確
           e update 看是否有人修改了你的文件
           f 如果有沖突,合并沖突
           g commit 提交你的修改,如果因為又有人提交修改而失敗,回到e步
           h 回到b步

        1 cvs checkout module_name
        -------------------------------------
        module_name可以暫時理解為目錄名,它會在本地但前目錄下建立module_name目錄,在把服務(wù)器上說有module_name目錄下的文件copy到本地module_name目錄下。
        注意:第一次checkout后,就不是通過cvs checkout來同步文件了,而是要進入該目錄下進行具體文件的版本同步(添加,修改,刪除)操作。

        2 cvs update filename
        -------------------------------------
        將文件同步到最新的版本:不指定文件名,cvs將同步所有子目錄下的文件。
        最好每天開始工作前或?qū)⒆约旱墓ぷ鲗氲紺VS庫里前都要做一次,并養(yǎng)成"先同步 后修改"的習慣,和Virvual SourceSafe不同,CVS里沒有文件鎖定的概念,所有的沖突是在commit之前解決,如果你修改過程中,有其他人修改并commit到了CVS庫中,CVS會通知你文件沖突
        <<<<<<< filename
         你文件上的內(nèi)容
        =======
          服務(wù)器上文件的內(nèi)容
        >;>;>;>;>;>;>; latest revision number in the repository

        由你確認沖突內(nèi)容的取舍。也可以多人協(xié)商解決,修改完成后去掉文件中的沖突標志

        conflict:多人修改同一文件的同一區(qū)域這就叫沖突,它必須由人來解決,CVS不處理沖突,它只是告訴你存才沖突


        3 cvs commit -m "write some comments here" file_name
        ------------------------------------
        確認修改寫入到CVS庫里。
        注意:CVS的很多動作都是通過cvs commit進行最后確認并修改的,最好每次只修改一個文件。在確認的前,還需要用戶填寫修改注釋,以幫助其他開發(fā)人員了解修改的原因。如果不用寫-m "comments"而直接確認`cvs commit file_name` 的話,cvs會自動調(diào)用系統(tǒng)缺省的文字編輯器(一般是vi)要求你寫入注釋。
        注釋的質(zhì)量很重要:所以不僅必須要寫,而且必須寫一些比較有意義的內(nèi)容:以方便其他開發(fā)人員能夠很好的理解
        不好的注釋,很難讓其他的開發(fā)人員快速的理解:比如: -m "bug fixed" 甚至 -m ""
        好的注釋,甚至可以用中文: -m "在用戶注冊過程中加入了Email地址校驗"

        修改某個版本注釋:每次只確認一個文件到CVS庫里是一個很好的習慣,但難免有時候忘了指定文件名,把多個文件以同樣注釋commit到CVS庫里了,以下命令可以允許你修改某個文件某個版本的注釋:
        cvs admin -m 1.3:"write some comments here" file_name

        4 查看狀態(tài)
        ------------------------------------
        cvs status filename
        狀態(tài)報告,類似這樣: 
        File: foo.c             Status: Up-to-date 
           Working revision:    1.1.1.1 'Some Date' 
           Repository revision: 1.2     /home/cvsroot/cvstest/foo.c,v 
           Sticky Tag:          (none) 
           Sticky Date:         (none) 
           Sticky Options:      (none) 

        這里最重要的就是Status欄,這里總共可能有四種狀態(tài): 
        Up-to-date: 表明你要到的文件是最新的. 
        Locally Modified: 表明你曾經(jīng)修改過該文件,但還沒有提交,你的版本比倉庫里的新. 
        Needing Patch: 表明有個哥們已經(jīng)修改過該文件并且已經(jīng)提交了!你的版本比倉庫里的舊. 
        Needs Merge: 表明你曾經(jīng)修改該文件,但是偏偏有個不識相的也修改了這個文件,而且還提交了!

        5 查看修改歷史和注釋信息
        ------------------------------------
        cvs log file_name


        其他常用命令
        ==================================
        1 添加文件和目錄
        ------------------------------------
        cvs add new_file_name
        cvs add -kb new_file_name
        cvs add dir_name

        CVS一般只處理文本文件,它會擴展keyword(宏)并轉(zhuǎn)換行結(jié)束符
        對于圖片,Word文檔等非純文本的項目,需要使用cvs add -kb選項,否則有可能出現(xiàn)文件被破壞的情況
        然后確認修改并注釋
        cvs ci -m "write some comments here"  new_file_name

        2 刪除文件
        ------------------------------------
        將某個源文件物理刪除后
        cvs remove file_name
        然后確認修改并注釋
        cvs ci -m "write some comments here" file_name

        注意:很多cvs命令都有縮寫形式:commit=>;ci; update=>;up; checkout=>;co; remove=>;rm;

        3.修改文件名
        ------------------------------------
        移動文件:文件重命名
        cvs里沒有cvs move或cvs rename,因為這兩個操作是先cvs remove old_file_name,然后cvs add new_file_name實現(xiàn)的。

        4 目錄結(jié)構(gòu)同步
        ------------------------------------
        如果在你checkout后,有人添加了新的文件或目錄,你需要把他們?nèi)〕鰜?
        cvs update -d

        5 放棄本地的修改(undo)
        ------------------------------------
        如果修改來了本地文件,不想提交,想重新取新文件
        cvs update -C filename
        它會先把你的本地文件改名

        建議:建議大家把checkout的文件缺省為readonly,把"cvs -r"添加到~/.cvsrc文件中
             這樣,你每次修改一個文件前,先cvs edit filename,提交后文件又變成readonly,
                   如果你想放棄本地的修改,則cvs unedit filename,它會undo,而且文件又變成readonly


        6 恢復到舊版本
        ------------------------------------
        cvs update -j1.20 -j1.15 filenames
        1.20時當前版本號,注意順序不要反了,記住要commit,為了保證是但前版本號,最好先lock
        注意:cvs update -r1.15 file.name,這里的-r不是版本號的意思,是給文件加了一個叫1.15的sticky tag
        如果不小心已經(jīng)加成STICK TAG的話:用cvs update -A 解決

        7 文件比較
        ------------------------------------
        cvs diff -c filename
        cvs diff -c -r1.8 -r 1.5 filename

        8 鎖定與解鎖文件
        ------------------------------------
        為保證串行的修改文件,或修改二
        cvs admin -l files
        cvs admin -u files


        ==========================================================================
        如果你只是一般性的使用cvs,到此為止就足夠了。一個系統(tǒng)20%的功能往往能夠滿足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能用到的還不到它全部命令選項的10%,更多的功能請在實際應(yīng)用過程中體會,學習過程中應(yīng)該是用多少,學多少,用到了再學也不遲。
        ==========================================================================

        CVS宏/keyword
        ==================================
        CVS缺省會對文件進行keyword(宏)替換,在文件中加入這些關(guān)鍵字是個良好的工作習慣
        $Id$ 關(guān)鍵字是用文件名、版本、時間、作者 及代碼性質(zhì)替換,如果使用-l選項取出,在Exp后
        面會加上登錄用戶的名稱。除了$Id$關(guān)鍵字,RCS還支持下面常用的關(guān)鍵字:
        $Log$ : 你所提供的修改日志信息。
        $Author$ :存入該版本的作者。
        $Locker$ : 該版本的加鎖者
        $State$ : 該版本的狀態(tài) Exp(試驗版), Stabe(穩(wěn)定版), Rel(發(fā)行版).缺省是Exp
        $Date$ : 該版本存入的時間,使用UTC時間格式。
        $Revision$ : 該版本的版本號
        $RCSfile$ : RCS文件名
        $Source$ : RCS全路徑名
        $Name$ : 取回該版本的符號名
        $Header$ : 相當于$ Source $$ Revision$$Date$$Author $$State$$Locker$的組合


        Sticky Tag
        ==================================
        tag的作用是對多個連續(xù)變化的文件做一個快照來表示某一時刻的所有不停內(nèi)部版本的文件,一般是項目到一定階段,可以給所有文件統(tǒng)一指定一個階段里程碑版本號,需要的時候可以一次導出這些版本不一的文件.標記的另外一個非常重要的作用是生成分支和合并分支.
        1 cvs tag release_name  module_name
        ------------------------------------
        release_name要簡潔而含義豐富,由字母開頭,加字母,數(shù)字,下劃線和連字號組成,特別是不能含“.”
        2 cvs checkout -r release_name module_name
        ------------------------------------
        取出tag_name標志的文件
        3 cvs update -A
        ------------------------------------
        tag標識的文件是歷史文件,不能修改,這樣可在本地去除這個限制,讓它和當前版本合并



        關(guān)鍵詞: CVS

        評論


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

        關(guān)閉