<ruby id="rxdll"></ruby><strike id="rxdll"></strike>

    <rp id="rxdll"></rp>
      <del id="rxdll"><meter id="rxdll"></meter></del>
      <pre id="rxdll"><font id="rxdll"></font></pre>
        <pre id="rxdll"></pre>
      <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

      <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
      <i id="rxdll"><dfn id="rxdll"></dfn></i>
      <font id="rxdll"><meter id="rxdll"></meter></font>

        <mark id="rxdll"><dfn id="rxdll"></dfn></mark>
        • 軟件測試技術
        • 軟件測試博客
        • 軟件測試視頻
        • 開源軟件測試技術
        • 軟件測試論壇
        • 軟件測試沙龍
        • 軟件測試資料下載
        • 軟件測試雜志
        • 軟件測試人才招聘
          暫時沒有公告

        字號: | 推薦給好友 上一篇 | 下一篇

        在軟件測試中使用CVS來管理自己的程序

        發布: 2009-5-05 09:36 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 141次 | 進入軟件測試論壇討論

        領測軟件測試網

        入一些說明信息它才罷休。netants是這個項目被CVS存儲時的路徑名,即CVS將在創建一個$CVSROOT/netants的目錄,并在此目錄下存放此項目的文件,當然,它不是原封不動的存儲,CVS會做一番處理。最后兩個字符串設定了兩個標記(tag),現在并沒有什么用處,但它們同樣是CVS指定必需的,所以我們添上這兩個參數。執行此命令時,CVS自動將所有的文件版本設為1.1,這是它所認為的最低版本。以下為執行上述命令后的顯示信息:N netants/netants.c N netants/http.c N netants/http.h N netants/netants.h N netants/Makefile No conflicts created by this import N表示New,CVS成功的加載了這些文件,并沒有發現沖突!∩厦娴拿钌蚤L了一些,而且顯得有些繁瑣,相信我,CVS不總是這樣的,這點\"繁瑣\"相對它給我們帶來的便利是完全可以忽略不計的。

        3.3從CVS中導出項目

          好了,我們把自己的netants的項目交給了CVS去管理,現在,我們完全可以刪除原有的存儲我們代碼的netants目錄(當然,安全起見,你或許應該再做一次備份,并希望是最后一次)。我們要進行開發工作了,建一個目錄,叫什么呢,就叫worktmp吧。我們進到此目錄下,執行命令cvs checkout netants,我們將會看到如下的信息:cvs checkout: Updating netants U netants/Makefile U netants/http.c U netants/http.h U netants/netants.c U netants/netants.h CVS在當前目錄下建立一個叫做netants的目錄,我們原先的代碼文件都在這個目錄下出現了,而且還多了一個名為CVS的目錄。目錄CVS下面存放的是一些文本文件,記錄了CVSROOT的位置、此項目對應源碼庫中那個目錄等一些信息。

          3.4保存修改到CVS中

          現在,我們開始艱苦卓越的編程工作。經過數十分鐘、數小時乃至數天的工作,我們對原有的代碼做了較大的修改,現在要告一段落了。我們將修改的內容提交給CVS,于是,我們需要執行命令 cvs commit -m \"Made some useful changes on some files\" 這時,我們將會看到CVS給出一些提示信息,它掃描并比較此目錄下的現有文件和它在源碼庫中保存的原有文件,做了修改的文件將被更新,并且有了新的版本號:1.2。-m參數如同前面所說,是為了不想它啟動一個文本編輯器來讓自己輸入。如果我們僅是修改了其中一兩個文件,我們可以在上面的命令的最后附上文件名,這樣CVS只會比較、更新指定的文件。注意的是,和自己做備份不同,CVS只是保存了不同版本之間的差異,并沒有完整的保存各個版本,F在,你是不是覺得CVS有點用處了。

          3.5添加文件到項目中

          有一天,我們開始考慮給我們的網絡螞蟻加上從ftp站點下載文件的功能,于是,我們需要在原有的項目里添加兩個文件:ftp.c和ftp.h。首先,我們在工作目錄下建立并編輯、修改、生成了這兩個文件,然后我們使用命令add命令來添加!vs add ftp.c ftp.h 此時,文件并沒有真正的被添加,只是相當于\"注冊\"了一下,要使這個過程生效,我們仍然需要使用commit命令: cvs commit ftp.c ftp.h -m \"Add two files: ftp.c and ftp.h\" 此時,CVS將把這兩個文件添加到項目中去,他們的版本均為初始的1.1! 

            3.6從項目中刪除文件


         除了添加以外,我們有的時候可能需要刪除某個文件,例如我們發現文件netants.h其實沒有什么用。于是,我們執行下面幾個命令來完成刪除工作: rm netants.h cvs remove netants.h cvs commit netants.h -m \"Delete a file.\" 要注意的是,CVS只是刪除了當前版本的netants.h,它以前的版本依然存在,除非它恰好僅有1.1版本。

          3.7設定特定版本號

          經過一段時間的工作,程序已經初具規模,形成了較穩定的版本。這個時候,netants.c可能已經是5.4版本,而http.c可能是3.5版本,而我們希望將當前的代碼作一個版本發布。此時,我們需要使用的是tag命令。這個命令賦予指定的一個或多個文件一個給定的文本形式的版本號。版本號必須以字母開始,可以包含數字、下劃線和連接符號(-)。我們想給當前項目的所有文件賦予相同的版本號時,可以不指定文件或路徑參數,CVS默認選擇當前目錄下所有在CVS中注冊的文件(循環進子目錄)。下面既是一個例子: 鍵入命令:cvs tag release0-1 提示信息:    cvs tag: Tagging .    T Makefile    T [Page]ftp.c    T ftp.h    T http.c    T http.h    T netants.c 這樣當前版本的所有文件都有了一個叫做release0-1的版本代號。當我們需要這個版本的時候,我們使用-r (版本代號)參數來得到指定的版本。例如命令: cvs checkout -r release0-1 netants 將在當前目錄下建立netants目錄,并導出所有版本代號為release0-1的文件。

          3.8更新當前工作目錄中的文件

          這里使用的命令為update,它將比較指定的在CVS源碼庫中的文件和當前目錄下的文件,如果CVS源碼庫中有更高版本的源文件,則更新當前目錄下的文件。這個功能主要是多人協作開發項目時使用的,讓你及時分享同伴的工作成果。但它另外一個重要的用途,同樣適用于單人開發的項目。這個用途需要使用-j參數,我們看下面的例子: cvs update -j 1.5 -j 1.3 netants.c 這個命令的功能是,在當前目錄的netants.c文件中,忽略從版本1.3到版本1.5所作的修改。毫無疑問,對程序員來說,這是一個非常重要的功能。因為在某個階段我們對程序所作的修改在現在可能會被視為是無效乃至錯誤的,這個功能很好的解決了這個問題!≡诟碌倪^程中,CVS執行一個自動合并的過程。例如我們的工作目錄中的netants.c文件版本是2.1,并且我們已經對此文件作了一番修改,而CVS源碼庫中的是版本2.2,此時我們執行update命令時,CVS并不是簡單的將版本2.2覆蓋版本2.1,而是試圖將自版本2.1到版本2.2的修改添加到當前目錄中的文件中去,如果它和我們剛剛所作的修改有沖突,則CVS會以字符串\">>>>\"表示由沖突發生,期待用戶去修改。CVS拒絕接受包含有上述特定字符串的文件。下面即是一個沖突的例子:netants.c:版本號2.2,保存在CVS中……getPartFile( ); showFinished(); return(A); }……

          netants:版本號2.1經過我們的修改……getPartFile( ); return(B); }……我們執行命令cvs update netants.c后,將會包含如下內容的新的netants.c:

          ……getPartFile( ); showFinished(); >>>>>> 2.2 }…… 除非我們做出修改并刪去\">>>>>>\",否則在執行cvs commit的時候,netants.c將不會更新原有的2.2版本。

          4.CVS的其他功能

          CVS當然遠不止上面所說的這些內容,這些僅是CVS的基本功能,CVS還有許多重要的功能,如上面所說的網絡工作方式、支持二進制文件等。下面我們對這些功能作簡單的說明。4.1 CVS的網絡工作方式

          CVS的網絡功能采用client-server結構,兩地均需安裝CVS。CVS采用rsh方式或者口令校驗方式進行工作。對client端,同前面講過的設置環境變量CVSROOT一樣,用戶需要設置新的環境變量CVS_SERVER,指明CVS在server上的路徑,例如:/usr/local/cvsroot1。CVS的-d參數指定路徑名,它后面可以用:(local或server或ext):來指明是在本地還是在異地服務器上,默認當然是在本地,正如我們在初始化CVS一節所使用的那樣。下面的命令假定我們的CVS服務器為cvs.rdcps.ac.cn,用戶名為crazyyao,CVS源碼庫在服務器的/usr/local/cvsroot1目錄下,我們的工作項目還是netants,我們用rsh方式導出項目文件: cvs -d : server : [Page]crazyyao@cvs.rdcps.ac.cn :/usr/local/cvsroot1 checkout netants 采用口令校驗方式時,需要對修改系統文件/etc/inetd.conf,以便使inetd知道如何分配、處理CVS Server的請求和響應。CVS會在源碼庫所在的目錄中創建一個名為passwd的口令文件,對用戶進行校驗。使用口令校驗時,CVS支持匿名登陸,而且CVS項目超級用戶可以設置項目中文件的存取權限!£P于如何配置CVS使之工作在網絡方式下的詳細信息請參考CVS的文檔。

        4.2 CVS的分支和融合功能

          CVS增強的目錄工作方式使得CVS提供分支和融合功能。有的時候,當項目進展到一定程度時,可能需要暫時中斷,去做另外一些修改和發展。例如,我們的軟件原有版本為1.0,并已提交用戶使用,現在正在開發2.0。某一天,1.0的用戶發現了一個較大的bug或者需要添加某個短小的功能,這時我們不能讓用戶去期待2.0版本,又必須給用戶滿意的答復,比較理想的解決方式是把現在的工作先放到一邊,另開一個分支,去滿足用戶的需要。當此分支完成后,程序源還可以使用CVS的融合功能將這一部分修改添加到我們開發2.0版本的主工作進程中去!摻ǚ种Э梢允褂胻ag -b命令。例如下面的命令   cvs tag -b netants-1-0-patch 在當前的工作目錄的基礎上創建一個叫做netant-1-0-patch的分支!∪诤系拿顓凳-j,我們在前面已經提及它了。

          4.3 CVS處理二進制文件的功能

          CVS可以保存二進制文件,但和文本文件相比,它的許多功能喪失了。對于文本文件,CVS可以辨別出文件的任何一點改動,但對于二進制文件它無能為力。但是,CVS可以區分出文件作了改動,并會提示用戶自己修改、保存。與文本文件不同,CVS保存二進制文件每個版本的完整信息。在操作二進制文件時,需要添加參數-KB,以便告訴CVS不把它當作文本文件看待。

          4.4 CVS比較文件的功能

          執行的命令為diff,這個功能和shell下的diff功能基本一樣。例如下面的命令比較CVS源碼庫中的最新的netants.c文件和當前目錄下netants.c文件有什么不同: cvs diff netatns.c

          5.結束語

          通過上面的介紹,希望能激起大家使用CVS的興趣,并掌握使用CVS的一些基本方法。碰到困難時,別忘了翻閱CVS附帶的手冊,不過,它有厚厚的172頁。希望CVS能加速你的軟件開發。

        文章來源于領測軟件測試網 http://www.k11sc111.com/

        22/2<12

        關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
        版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
        北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
        技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

        軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

        国产女主播精品_国产片婬乱18一级毛片视频_国产午夜激无码av毛片不卡_国产精品欧美久久久天天影院
          <ruby id="rxdll"></ruby><strike id="rxdll"></strike>

          <rp id="rxdll"></rp>
            <del id="rxdll"><meter id="rxdll"></meter></del>
            <pre id="rxdll"><font id="rxdll"></font></pre>
              <pre id="rxdll"></pre>
            <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

            <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
            <i id="rxdll"><dfn id="rxdll"></dfn></i>
            <font id="rxdll"><meter id="rxdll"></meter></font>

              <mark id="rxdll"><dfn id="rxdll"></dfn></mark>