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

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

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

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