您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
從CVS到SVN
作者:網(wǎng)絡轉載 發(fā)布時間:[ 2014/1/7 17:20:27 ] 推薦標簽:CVS SVN

軟件包(SoftWare Package)
具有特定的功能,用來完成特定任務的一個程序或一組程序?煞譃閼密浖拖到y(tǒng)軟件包兩大類。應用軟件包與特定的應用領域有關,又可分為通用包及專用包兩類。通用軟件包根據(jù)社會的一些共同需求開發(fā),專用軟件包則是生產者根據(jù)用戶的具體需求定制的,可以為適合其特殊需要進行修改或變更。

二、cvs
1,CVS服務器(文件版本庫)
  CVS(Concurrent Versions System)是一個C/S系統(tǒng),多個開發(fā)人員通過一個中心版本控制系統(tǒng)來記錄文件版本,從而達到保證文件同步的目的。版本控制系統(tǒng)是一種GNU軟件包,主要用于在多人開發(fā)環(huán)境下的源碼的維護。Concurrent有并發(fā)的、協(xié)作的、一致的等含義。實際上CVS可以維護任意文檔的開發(fā)和使用,而不僅僅局限于程序設計。CVS維護的文件類型可以是文本類型也可以是二進制類型。CVS用Copy-Modify-Merge(拷貝、修改、合并)變化表支持對文件的同時訪問和修改。它明確地將源文件的存儲和用戶的工作空間獨立開來,并使其并行操作。CVS基于客戶端/服務器的行為使其可容納多個用戶,這一特性使得CVS成為位于不同地點的人同時處理數(shù)據(jù)文件(特別是程序的源代碼)時的。
2,CVS的基本工作思路
  在一臺服務器上建立一個源代碼庫,庫里可以存放許多不同項目的源程序,由源代碼庫管理員統(tǒng)一管理。每個用戶在使用源代碼庫之前,首先要把源代碼庫里的項目文件下載到本地,然后用戶可以在本地任意修改,后用CVS命令進行提交,由CVS源代碼庫統(tǒng)一管理修改。這樣,好像只有一個人在修改文件一樣,既避免了沖突,又可以做到跟蹤文件變化等。
  它的客戶機/服務器存取方法使得開發(fā)者可以從任何因特網(wǎng)的接入點存取新的代碼。它的無限制的版本管理檢出(check out:)的模式避免了通常的因為排它檢出模式而引起的人工沖突。它的客戶端工具可以在絕大多數(shù)的平臺上使用。 CVS被應用于流行的開放源碼工程中,CVS內建了客戶機/服務器存取方法,所以任何一個可以連到因特網(wǎng)上的開發(fā)者都可以存取在一臺CVS服務器上的文件。
  在傳統(tǒng)的版本控制系統(tǒng)中,一個開發(fā)者檢出一個文件,修改它,然后將其登記回去。檢出文件的開發(fā)者擁有對這個文件修改的排它權。并且只有檢出那個文件的開發(fā)者可以登記(check in:)所做的修改。(當然對于管理員有很多方法可以超越這個限制。)  CVS通過它的無限制的檢出模式解決了這個問題。當多個開發(fā)者對同一個文件作了修改CVS會檢測,并且自動合并那些只要不是對代碼的同一行所作的改動。
3,CVS 術語
  Revision (修訂版本)--文件歷史記錄中的被開發(fā)者提交的變化。一個修訂版本是一個時常變化的項目的 snapshot (瞬態(tài)圖)。
  Repository (源代碼庫)--CVS 存儲所有修訂版本歷史記錄的地方。每個項目都有自己的一個確定的源代碼庫。
  Working copy (工作拷貝)--開發(fā)者對文件作出修改時文件所在的拷貝。
  Check out (檢驗)--從源代碼庫中申請一份工作拷貝。該工作拷貝反映的是取出時項目的瞬時狀態(tài)。當開發(fā)者對拷貝作出修改時,必須運用 commit (提交)和 update (更新) 命令來 “發(fā)布”變化和查看其他開發(fā)者所作的修改。
  Commit (提交)--將工作拷貝中的變化輸入中央源代碼庫。
  Log message (日志信息)--提交修訂版本的時候,附帶描述變化的注解。通過查閱記錄信息,人們可以獲得一個當前項目進程的總結。
  Update (更新)--從源代碼庫中取出別人的修改數(shù)據(jù),將其輸入自己的工作拷貝,并顯示自己的工作拷貝是否有未提交的修改。注意,不要和 commit (提交)混淆,更新和提交是一對互補的指令。記。 Update 將使工作拷貝和源代碼庫拷貝保持同步更新。
  Conflicts (沖突)--兩個開發(fā)者對同一個區(qū)域所做的改動都提交給主版本時出現(xiàn)的情況,在 CVS 覺察并指出這個沖突后,開發(fā)者必須解決該沖突。
4,日常使用
  注意:第一次導出以后,不是通過cvs checkout來同步文件了,而是要進入剛才cvs checkout project_name導出的project_name目錄下進行具體文件的版本同步(添加,修改,刪除)操作。
  將文件同步到新的版本cvs update 養(yǎng)成“先同步,后修改”的習慣, CVS里沒有文件鎖定的概念,所有的沖突是在commit之前解決,如果你修改過程中,有其他人修改并commit到了CVS 庫中,CVS會通知你文件沖突,并自動將沖突部分用
  >>>>>>
  content on cvs server
  <<<<<<
  content in your file
  >>>>>>
標記出來,由你確認沖突內容的取舍。版本沖突一般是在多個人修改一個文件造成的,但這種項目管理上的問題不應該指望由CVS來解決。
注意:CVS的很多動作都是通過cvs commit進行后確認并修改的,好每次只修改一個文件。在確認的前,還需要用戶填寫修改注釋,以幫助其他開發(fā)人員了解修改的原因。修改某個版本注釋:每次只確認一個文件到CVS庫里是一個很好的習慣。

上一頁12345下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd