偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SVN與CVS的區(qū)別精辟講解大全

開(kāi)發(fā) 項(xiàng)目管理
本文介紹SVN與CVS的區(qū)別,主要包括全局性的版本編號(hào),目錄的版本控制,原子性提交,差異化的二進(jìn)制文件處理幾部分。

本文向大家介紹一下SVN與CVS的區(qū)別,大家應(yīng)該知道SVN與CVS都是版本控制軟件,那么他們之間有什么區(qū)別呢?通過(guò)本文的學(xué)習(xí)相信你會(huì)找到答案。

全局性的版本編號(hào)

通過(guò)全局性的版本編號(hào)看SVN與CVS的區(qū)別:一個(gè)新的版本,并得到一個(gè)自增量的版本號(hào)N+1,該版本號(hào)并不針對(duì)某個(gè)特定的文件,而是全局性的、針對(duì)整個(gè)版本庫(kù)的。因此,我們可以將Subversion的版本庫(kù)看作是一個(gè)文件系統(tǒng)或文件目錄樹(shù)的數(shù)組。Subversion的全局性版本編號(hào)為Subversion帶來(lái)了諸多的優(yōu)勢(shì):如對(duì)目錄或文件執(zhí)行拷貝,無(wú)論涉及多少文件,Subversion不需要對(duì)單個(gè)文件依次執(zhí)行拷貝命令,僅僅需要建立一個(gè)指向相應(yīng)的全局版本號(hào)的一個(gè)指針即可。

目錄的版本控制

通過(guò)目錄的版本控制看SVN與CVS的區(qū)別:CVS只能對(duì)文件進(jìn)行版本控制,不能對(duì)目錄進(jìn)行版本控制,因此CVS沒(méi)有任何關(guān)于文件“移動(dòng)”(move)操作的概念。當(dāng)人為進(jìn)行文件移動(dòng)操作時(shí),CVS只能注意到,一個(gè)文件在一個(gè)位置被刪除了,而在一個(gè)新位置創(chuàng)建了另外一個(gè)文件。由于它不會(huì)連接兩個(gè)操作,因此也很容易使文件歷史軌跡丟失。設(shè)置CVS存儲(chǔ)庫(kù)時(shí),必須非常謹(jǐn)慎地為每個(gè)文件選擇準(zhǔn)確的位置,因?yàn)樵谠O(shè)置之后,幾乎就要一直使用這個(gè)位置了。

Subversion將目錄作為一類(lèi)特殊的文件來(lái)處理(事實(shí)上,從文件系統(tǒng)的角度來(lái)看,目錄確實(shí)是一類(lèi)特殊的文件,當(dāng)目錄中的子目錄/文件被刪除、重命名、或新的子目錄/文件被創(chuàng)建時(shí),目錄的內(nèi)容將發(fā)生改變)。因此,Subversion象記錄普通文件的修改歷史一樣記錄對(duì)目錄的修改歷史,當(dāng)發(fā)生文件/目錄的移動(dòng)、重命名或拷貝操作時(shí),Subversion能夠準(zhǔn)確記錄操作前后的歷史聯(lián)系。同樣,象對(duì)文件的不同歷史版本進(jìn)行比較一樣,Subversion支持對(duì)目錄的不同歷史版本的比較,清晰展現(xiàn)目錄的變化歷史。

原子性提交

通過(guò)原子性提交看SVN與CVS的區(qū)別:從使用者的角度來(lái)看,CVS和Subversion都支持對(duì)多個(gè)文件修改的批量提交,但二者在實(shí)現(xiàn)方式上存在本質(zhì)的區(qū)別。
CVS采用線(xiàn)性、串行的批量提交,即依次地,一個(gè)接一個(gè)地執(zhí)行提交,每成功提交一個(gè)文件,該文件的一個(gè)新的版本即被記錄到版本庫(kù)中,提交時(shí)用戶(hù)提供的日志信息被重復(fù)地存儲(chǔ)到每一個(gè)被修改的文件的版本歷史中。

CVS串行批量提交模式的弊端在于-當(dāng)任何原因造成批量操作的中斷時(shí)(典型原因包括:網(wǎng)絡(luò)中斷、客戶(hù)端死機(jī)等),版本庫(kù)往往處于一個(gè)不一致的狀態(tài):原本應(yīng)該全部入庫(kù)的文件只有一部分入庫(kù),很有可能版本庫(kù)中的最新版本不能順利編譯,更為嚴(yán)重的是,隨著其他的用戶(hù)執(zhí)行cvsupdate操作,該不一致性將迅速在開(kāi)發(fā)團(tuán)隊(duì)中擴(kuò)散,從而嚴(yán)重影響團(tuán)隊(duì)的開(kāi)發(fā)效率,并存在質(zhì)量隱患。另外,假如該批量提交的中斷沒(méi)有被及時(shí)發(fā)現(xiàn),開(kāi)發(fā)團(tuán)隊(duì)往往要花更多的時(shí)間進(jìn)行軟件調(diào)試和排錯(cuò)。

差異化的二進(jìn)制文件處理

通過(guò)差異化的二進(jìn)制文件處理看SVN與CVS的區(qū)別:由于歷史原因,CVS主要是為早期的程序員設(shè)計(jì)的,CVS能夠有效處理文本文件(或ASCII文件,源代碼文件),可以對(duì)文本文件進(jìn)行差異化的存儲(chǔ)、新舊版本的比較,文件合并等;但對(duì)于二進(jìn)制文件,CVS則明顯力不從心。

與CVS不同,Subversion采用統(tǒng)一的二進(jìn)制差異算法(binarydifferencingalgorithm),即對(duì)文本文件和二進(jìn)制文件采用相同的差異比較算法,并以相同的方式在版本庫(kù)中進(jìn)行存儲(chǔ):每次提交后版本庫(kù)中只存儲(chǔ)相對(duì)于先前版本的差異,從而可以節(jié)省大量的存儲(chǔ)空間。該二進(jìn)制差異算法不僅應(yīng)用在版本的存儲(chǔ)上,更為重要的是,Subversion對(duì)二進(jìn)制文件與文本文件一視同仁,當(dāng)客戶(hù)端需要獲取新的版本時(shí)(如執(zhí)行svnupdate),在網(wǎng)絡(luò)上只有版本的差異被傳輸,從而大大減少對(duì)網(wǎng)絡(luò)帶寬的消耗。更多細(xì)節(jié)參見(jiàn)“七、雙向的差異化-壓縮網(wǎng)絡(luò)傳輸”。
 

  【編輯推薦】

  1. MyEclipse6.0集成SVN及配置詳解
  2. CentOS系統(tǒng)中安裝subversion并使用svn+ssh訪(fǎng)問(wèn)
  3. 基于Java的svn客戶(hù)端工具JavaSVN 1.1.0.beta發(fā)布
  4. 如何結(jié)合使用Subversion和Eclipse
  5. Subversion日期解析函數(shù)緩沖區(qū)溢出漏洞

 

責(zé)任編輯:佚名
相關(guān)推薦

2010-05-19 16:45:26

2010-05-19 16:57:49

SVN與CVS的區(qū)別

2010-05-28 15:14:20

SVN全稱(chēng)

2010-05-25 09:55:36

SVN服務(wù)端配置

2010-06-01 19:33:53

SVN與CVS優(yōu)缺點(diǎn)

2011-07-07 10:33:57

項(xiàng)目管理

2010-05-19 15:57:38

CVS與SVN

2010-05-31 14:42:14

SVN與CVS優(yōu)缺點(diǎn)

2010-05-25 10:08:29

SVN權(quán)限管理

2010-05-28 14:57:42

SVN-Importe

2010-05-19 16:15:05

SVN與CVS

2010-05-20 15:50:05

SVN分支

2012-02-02 16:58:02

Eclipse

2010-05-28 11:09:51

SVN功能

2010-05-20 16:27:05

2010-05-28 15:28:25

svn-importe

2010-05-31 13:54:52

2011-03-31 10:17:40

Linuxsvn命令

2010-05-27 09:33:04

SVN沖突

2009-12-24 17:11:09

ADO與RDO
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)