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

軟件包(SoftWare Package)
具有特定的功能,用來完成特定任務(wù)的一個(gè)程序或一組程序。可分為應(yīng)用軟件包和系統(tǒng)軟件包兩大類。應(yīng)用軟件包與特定的應(yīng)用領(lǐng)域有關(guān),又可分為通用包及專用包兩類。通用軟件包根據(jù)社會的一些共同需求開發(fā),專用軟件包則是生產(chǎn)者根據(jù)用戶的具體需求定制的,可以為適合其特殊需要進(jìn)行修改或變更。

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

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