版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VSS、CVSS、SVVN和CCleaarCaase等等配置工工具的評(píng)評(píng)估和比比較版本 修訂歷史史記錄日期版本說(shuō)明作者20077-09-061.0新建目錄TOC * MERGEFORMAT1概述述 PAGEREF _Toc176868288 h 42主要要功能說(shuō)說(shuō)明 PAGEREF _Toc176868289 h 42.1Intternnet網(wǎng)網(wǎng)絡(luò)訪(fǎng)問(wèn)問(wèn)和遠(yuǎn)程程管理 PAGEREF _Toc176868290 h 552.2并行開(kāi)開(kāi)發(fā)支持持 PAGEREF _Toc176868291 h 62.3跨平臺(tái)臺(tái)開(kāi)發(fā)支支持 PAGEREF _Toc176868292 h 62.4開(kāi)發(fā)操操作使用用的便利
2、利性 PAGEREF _Toc176868293 h 62.5信息安安全性 PAGEREF _Toc176868294 h 773性能能詳述 PAGEREF _Toc176868295 h 773.1VSSS PAGEREF _Toc176868296 h 73.2CVSS PAGEREF _Toc176868297 h 73.3SVNN PAGEREF _Toc176868298 h 83.4CleearCCasee PAGEREF _Toc176868299 h 163.4.1控制任任何文件件的版本本 PAGEREF _Toc176868300 h 173.4.2在版本本樹(shù)中組組織元件件發(fā)
3、展的的過(guò)程 PAGEREF _Toc176868301 h 1173.4.3使用常常見(jiàn)的檢檢出/編輯/檢入范范例 PAGEREF _Toc176868302 h 1883.4.4通過(guò)分分支功能能支持并并行開(kāi)發(fā)發(fā) PAGEREF _Toc176868303 h 193.4.5自動(dòng)的的比較和和版本間間的歸并并 PAGEREF _Toc176868304 h 19概述Visuual SouurceeSaffe:微微軟的版版本控制制工具,僅支持持Winndowws操作作系統(tǒng)。雖然簡(jiǎn)簡(jiǎn)單好用用,但是是僅適用用于團(tuán)隊(duì)隊(duì)級(jí)開(kāi)發(fā)發(fā),不能能勝任企企業(yè)級(jí)的的開(kāi)發(fā)工工作。 Cleearccasee:IBBM旗下下R
4、attionnal公公司(220033年被IIBM收收購(gòu))的的一款重重量級(jí)的的軟件配配置管理理(SCCM, Sofftwaare Connfigguraatioon MManaagemmen)工具。與CVVS和VVSS不不同,CCleaarcaase涵涵蓋的范范圍包括括版本控控制、建建立管理理、工作作空間管管理和過(guò)過(guò)程控制制。從最最初的軟軟件配置置計(jì)劃,到配置置項(xiàng)的確確立,從從變更控控制到版版本控制制,Cllearrcasse貫穿穿于整個(gè)個(gè)軟件生生命周期期。 CCleaarcaase支支持現(xiàn)有有的絕大大多數(shù)操操作系統(tǒng)統(tǒng),但它它的安裝裝、配置置、使用用相對(duì)較較復(fù)雜,并且需需要進(jìn)行行團(tuán)隊(duì)培培訓(xùn)。
5、CVSS:Cooncuurreent Verrsioons Sysstemm。CVVS 是是有著三三十年以以上的時(shí)時(shí)間的考考驗(yàn)。CCVS是是開(kāi)放源源代碼軟軟件世界界的一個(gè)個(gè)偉大杰杰作,由由于CVVS功能能強(qiáng)大,跨平臺(tái)臺(tái),支持持并發(fā)版版本控制制,而且且免費(fèi),所以它它在全球球中小型型軟件企企業(yè)中得得到了廣廣泛使用用。CVVS最大大的遺憾憾就是缺缺少相應(yīng)應(yīng)的技術(shù)術(shù)支持,許多問(wèn)問(wèn)題的解解決需要要自已尋尋找資料料,甚至至是研究究源代碼碼。CVVS是一一個(gè)典型型的服務(wù)務(wù)器/客客戶(hù)端軟軟件,有有UNIIX版本本的CVVS 、Linnux版版本的CCVS和和WINNDOWWS版本本的CVVS。CCVS支支持遠(yuǎn)
6、程程管理,項(xiàng)目組組分布開(kāi)開(kāi)發(fā)時(shí)一一般都采采用CVVS。 SVN:Subbverrsioon。采用了了更先進(jìn)進(jìn)的分支支管理系系統(tǒng),它它的設(shè)計(jì)計(jì)目標(biāo)就就是取代代CVSS,CVVS縱然然易用,但也有有一些與與生俱來(lái)來(lái)的缺點(diǎn)點(diǎn),比如如CVSS不支持持文件改改名,只只對(duì)文件件控制版版本而沒(méi)沒(méi)有針對(duì)對(duì)目錄的的管理等等。之后后CVSS 的創(chuàng)創(chuàng)始人之之一在其其現(xiàn)任公公司的資資助下開(kāi)開(kāi)發(fā)了SSVN,用以針針對(duì)CVVS 的的一些弱弱點(diǎn)進(jìn)行行改進(jìn)。主要功能能說(shuō)明CVS縱縱然是一一個(gè)老牌牌的工具具產(chǎn)品,并也對(duì)對(duì)開(kāi)源事事業(yè)有貢貢獻(xiàn),但但CVSS的命令令行操作作著實(shí)讓讓一些使使用者頭頭疼。在在對(duì)一個(gè)個(gè)特定版版本的文文檔C
7、hheckk inn的時(shí)候候,需要輸入入一長(zhǎng)串串的路徑徑名、文文件名。在操作作易用性性上與CCVS形形成對(duì)比比的是微微軟家族族的VSSS。作作為微軟軟的產(chǎn)品品,在圖圖形界面面化操作作上自不不用多言言,但VVSS只只能適用用于小團(tuán)團(tuán)隊(duì)的開(kāi)開(kāi)發(fā)工作作。VSSS是很很好的入入門(mén)級(jí)工工具,但但它的一一些功能能太過(guò)于于“入門(mén)門(mén)”,在在驗(yàn)證密密碼、保保存密碼碼這些基基本功能能上處理理的不盡盡人意。適用于于大型軟軟件開(kāi)發(fā)發(fā)的有“中堅(jiān)級(jí)級(jí)”的CCleaarcaase,用它來(lái)來(lái)管理一一些小型型的項(xiàng)目目管理有有些“大大材小用用”。CCleaarcaase支支持目錄錄版本管管理、異異地團(tuán)隊(duì)隊(duì)開(kāi)發(fā)、視圖、多服務(wù)務(wù)器等
8、強(qiáng)強(qiáng)大功能能,所以以一些大大公司把把它做為為一、二二級(jí)產(chǎn)品品管理用用,但同同樣它的的價(jià)格也也不菲。CVSS是開(kāi)源源的,免免費(fèi)的,更何況況它還有有一個(gè)理理想的替替代者SVVN。SSVN的的設(shè)計(jì)專(zhuān)專(zhuān)門(mén)針對(duì)對(duì)CVSS的問(wèn)題題作了改改進(jìn),命命令的設(shè)設(shè)計(jì)更為為合理,對(duì)二進(jìn)進(jìn)制文檔檔和目錄錄這樣的的數(shù)據(jù)加加強(qiáng)了控控制能力力,并且且吸收了了VSSS的loock-moddifyy-uppdatte(rreleeasee)的模模式和mmodiify-merrge模模式的優(yōu)優(yōu)點(diǎn)這兩兩種方式式在一定定程度都都支持并并作了優(yōu)優(yōu)化,沒(méi)沒(méi)有提高高使用的的復(fù)雜度度。由于于SVNN的設(shè)計(jì)計(jì)結(jié)構(gòu)很很好,所所以很容容易為它它開(kāi)發(fā)
9、客客戶(hù)端,還有WWEB模模式的,可以遠(yuǎn)遠(yuǎn)程管理理,支持持RSSS更改訂訂閱。功能名稱(chēng)Inteerneet網(wǎng)絡(luò)絡(luò)和遠(yuǎn)程程管理并行開(kāi)發(fā)發(fā)跨平臺(tái)開(kāi)開(kāi)發(fā)操作的便便利性信息安全全性VSS最新發(fā)布布版本VVSS88.0可可支持此此功能最新發(fā)布布版本VVSS88.0支支持此功功能僅支持WWinddowss 操作作系統(tǒng)安裝、配配置、使使用均較較簡(jiǎn)單,很容易易上手使使用安全性不不高,基基于文件件系統(tǒng)共共享實(shí)現(xiàn)現(xiàn)對(duì)服務(wù)務(wù)器的訪(fǎng)訪(fǎng)問(wèn),需需要共享享存儲(chǔ)目目錄,這這樣用戶(hù)戶(hù)可以對(duì)對(duì)VSSS的文件件夾執(zhí)行行刪除操操作。CVS支持,速速度一般般支持支持幾乎乎所有的的操作系系統(tǒng)安裝、配配置較復(fù)復(fù)雜,但但使用比比較簡(jiǎn)單單,只需
10、需對(duì)配置置管理做做簡(jiǎn)單培培訓(xùn)即可可安全性高高,CVVS服務(wù)務(wù)器有自自己專(zhuān)用用的數(shù)據(jù)據(jù)庫(kù),文文件存儲(chǔ)儲(chǔ)并不采采用“共共享目錄錄”方式式,所以以不受限限于局域域網(wǎng)。SVN相比CVVS,更更加適合合基于互互聯(lián)網(wǎng)協(xié)協(xié)作開(kāi)發(fā)發(fā)的團(tuán)隊(duì)隊(duì),速度度也更快快相比CVVS,能能夠保證證所有的的修改都都入庫(kù)生生效同上同上同上CleaarCaase速度最快快,且不受受網(wǎng)絡(luò)連連接帶寬寬的限制制、防火火墻以及及安全問(wèn)問(wèn)題的影影響。支持支持常見(jiàn)見(jiàn)的平臺(tái)臺(tái)安裝、配配置、使使用相對(duì)對(duì)較復(fù)雜雜,需要要進(jìn)行團(tuán)團(tuán)隊(duì)培訓(xùn)訓(xùn)安全性不不高,采采用C/S模式式,需要要共享服服務(wù)器上上的存儲(chǔ)儲(chǔ)目錄以以供客戶(hù)戶(hù)端訪(fǎng)問(wèn)問(wèn)Inteerneet網(wǎng)絡(luò)絡(luò)
11、訪(fǎng)問(wèn)和和遠(yuǎn)程管管理VSS、CVSS和SVVN都提提供基于于Webb的界面面,用戶(hù)戶(hù)可以通通過(guò)瀏覽覽器執(zhí)行行配置管管理的相相關(guān)操作作,即通過(guò)這這樣的方方法來(lái)實(shí)實(shí)現(xiàn)對(duì)異異地開(kāi)發(fā)發(fā)的支持持。但是是相對(duì)于于CVSS,SVVN采用用統(tǒng)一的的二進(jìn)制制差異算算法,所所以消耗耗更少的的網(wǎng)絡(luò)帶帶寬,因因此更加加適合基基于互聯(lián)聯(lián)網(wǎng)(或或廣域網(wǎng)網(wǎng))進(jìn)行行協(xié)作開(kāi)開(kāi)發(fā)的地地理上分分布的團(tuán)團(tuán)隊(duì),即即版本服服務(wù)器集集中、單單一;客客戶(hù)端可可廣泛分分布。其實(shí)上述述實(shí)現(xiàn)方方法有太太多的局局限性,例如網(wǎng)網(wǎng)絡(luò)(IInteerneet)連連接帶寬寬的限制制、防火火墻以及及安全問(wèn)問(wèn)題等。真正意意義上的的異地開(kāi)開(kāi)發(fā)支持持,是指指在不同同
12、的開(kāi)發(fā)發(fā)地點(diǎn)建建立各自自的存儲(chǔ)儲(chǔ)庫(kù),通通過(guò)工具具提供同同步功能能自動(dòng)或或手動(dòng)同同步。這這樣做的的好處是是與網(wǎng)絡(luò)絡(luò)無(wú)關(guān),即便各各個(gè)開(kāi)發(fā)發(fā)地點(diǎn)之之間沒(méi)有有實(shí)時(shí)連連通的網(wǎng)網(wǎng)絡(luò),也也可以通通過(guò)E-Maiil 附附件等其其它方式式將同步步包發(fā)給給對(duì)方,實(shí)現(xiàn)手手動(dòng)的同同步。而而CleearCCasee就能實(shí)實(shí)現(xiàn)這樣樣的功能能。值得說(shuō)明明的是,在不同同開(kāi)發(fā)點(diǎn)點(diǎn)建立各各自存儲(chǔ)儲(chǔ)庫(kù)的方方式,主主要適用用于兩個(gè)個(gè)或兩個(gè)個(gè)以上位位于不同同地點(diǎn)的的開(kāi)發(fā)團(tuán)團(tuán)隊(duì)協(xié)作作開(kāi)發(fā)的的情況。如果僅僅是采用用虛擬團(tuán)團(tuán)隊(duì)合作作的方式式,開(kāi)發(fā)發(fā)人員以以個(gè)體的的形式散散落在不不同地方方,則更更適合通通過(guò)Innterrnett 直接接操作遠(yuǎn)
13、遠(yuǎn)程的配配置管理理服務(wù)器器。并行開(kāi)發(fā)發(fā)支持在團(tuán)隊(duì)協(xié)協(xié)作開(kāi)發(fā)發(fā)過(guò)程中中,有兩兩種主要要的模式式:集體體代碼權(quán)權(quán)和個(gè)體體代碼權(quán)權(quán)。采用用集體代代碼權(quán)模模式進(jìn)行行開(kāi)發(fā)時(shí)時(shí),一段段代碼可可能同時(shí)時(shí)會(huì)被多多個(gè)開(kāi)發(fā)發(fā)人員同同時(shí)修改改;而采采用個(gè)體體代碼權(quán)權(quán)模式進(jìn)進(jìn)行開(kāi)發(fā)發(fā)時(shí),每每一段代代碼都始始終被一一個(gè)開(kāi)發(fā)發(fā)人員獨(dú)獨(dú)享,別別人需要要修改時(shí)時(shí)也要通過(guò)該該開(kāi)發(fā)人人員完成成。而配置管管理軟件件針對(duì)這這一情況況,也采采用了不不同的策策略:CCopyy-Moodiffy-MMergge(拷拷貝、修修改、合合并) 的并行行開(kāi)發(fā)模模式、CChecck uut-MModiify-Cheeck in(簽出、修改、簽入)的
14、獨(dú)占占開(kāi)發(fā)模模式。在在并行開(kāi)開(kāi)發(fā)模式式下,開(kāi)開(kāi)發(fā)人員員可以并并行開(kāi)發(fā)發(fā)、更改改代碼,并能夠夠自動(dòng)檢檢測(cè)到代代碼沖突突,并自自動(dòng)合并并,或提提示開(kāi)發(fā)發(fā)人員手手動(dòng)解決決。VSS最最新發(fā)布布版本88.0可可支持并并行開(kāi)發(fā)發(fā)模式,其它三三種工具具也都可支持持。CVS 采用線(xiàn)線(xiàn)性、串串行的批批量提交交,即依依次地,一個(gè)接接一個(gè)地地執(zhí)行提提交,每每成功提提交一個(gè)個(gè)文件,該文件件的一個(gè)個(gè)新的版版本即被被記錄到到版本庫(kù)庫(kù)中,提提交時(shí)用用戶(hù)提供供的日志志信息被被重復(fù)地地存儲(chǔ)到到每一個(gè)個(gè)被修改改的文件件的版本本歷史中中。但是是當(dāng)任何何原因造造成批量量操作的的中斷時(shí)時(shí)(典型型原因包包括:網(wǎng)網(wǎng)絡(luò)中斷斷、客戶(hù)戶(hù)端死機(jī)機(jī)
15、等),版本庫(kù)庫(kù)往往處處于一個(gè)個(gè)不一致致的狀態(tài)態(tài):原本本應(yīng)該全全部入庫(kù)庫(kù)的文件件只有一一部分入入庫(kù),很很有可能能版本庫(kù)庫(kù)中的最最新版本本不能順順利編譯譯,更為為嚴(yán)重的的是,隨隨著其他他的用戶(hù)戶(hù)執(zhí)行ccvs upddatee 操作作,該不不一致性性將迅速速在開(kāi)發(fā)發(fā)團(tuán)隊(duì)中中擴(kuò)散,從而嚴(yán)嚴(yán)重影響響團(tuán)隊(duì)的的開(kāi)發(fā)效效率,并并存在質(zhì)質(zhì)量隱患患。另外外,假如如該批量量提交的的中斷沒(méi)沒(méi)有被及及時(shí)發(fā)現(xiàn)現(xiàn),開(kāi)發(fā)發(fā)團(tuán)隊(duì)往往往要花花更多的的時(shí)間進(jìn)進(jìn)行軟件件調(diào)試和和排錯(cuò)。SVN徹徹底消除除了CVVS 的的以上弊弊端。無(wú)無(wú)論批量量提交包包含多少少文件修修改,只只有當(dāng)全全部文件件修改都都成功入入庫(kù),該該提交才才變得有有效,才
16、才對(duì)其他他用戶(hù)可可見(jiàn);否否則,無(wú)無(wú)論任何何原因造造成中斷斷,SVVN 都都會(huì)自動(dòng)動(dòng)執(zhí)行“回滾”(roollbbackk)操作作。換一一個(gè)說(shuō)法法,SVVN保證證所有的的修改要要么全部部入庫(kù)生生效,要要么一個(gè)個(gè)也不入入庫(kù),即即對(duì)版本本庫(kù)不作作任何的的修改。這就是是SVNN 的原原子性提提交(aatommic commmitt)。CleaarCaase可可以很容容易的產(chǎn)產(chǎn)生分支支,也可可以很容容易的將將不同分分支進(jìn)行行合并。這樣一一來(lái),即即便某一一部分的的工作被被凍結(jié)或或加鎖,開(kāi)發(fā)者者仍然可可以繼續(xù)續(xù)自己的的工作(如:在在軟件集集成期)。在這這種情況況,開(kāi)發(fā)發(fā)者可以以在分支支上工作作,Cllearr
17、Casse的自自動(dòng)化操操作和圖圖形歸并并工具可可以很容容易的重重新集成成新的工工作??缙脚_(tái)開(kāi)開(kāi)發(fā)支持持如果企業(yè)業(yè)需要從從事多個(gè)個(gè)不同平平臺(tái)下的的開(kāi)發(fā)工工作,就就需要配配置管理理工具能能夠?qū)缈缙脚_(tái)開(kāi)開(kāi)發(fā)提供供支持,否則勢(shì)勢(shì)必會(huì)給給開(kāi)發(fā)、測(cè)試、發(fā)布等等各個(gè)環(huán)環(huán)節(jié)帶來(lái)來(lái)不便,將使大大量的時(shí)時(shí)間被浪浪費(fèi)于代代碼的手手工上傳傳、下載載中。VSS僅僅支持WWinddowss 操作作系統(tǒng)。CVS、SVNN和CllearrCasse支持持幾乎所所有的操操作系統(tǒng)統(tǒng)和平臺(tái)臺(tái)。但是CCVS和和SVNN的服務(wù)務(wù)器端在在Uniix, Linnux環(huán)環(huán)境下運(yùn)運(yùn)行會(huì)更更穩(wěn)定可可靠。開(kāi)發(fā)操作作使用的的便利性性VSS安安裝、
18、配配置、使使用均較較簡(jiǎn)單,很容易易上手使使用。CVS和和SVNN安裝、配置較較復(fù)雜,但使用用比較簡(jiǎn)簡(jiǎn)單,只只需對(duì)配配置管理理做簡(jiǎn)單單培訓(xùn)即即可。CleaarCaase安安裝、配配置、使使用相對(duì)對(duì)較復(fù)雜雜,需要要進(jìn)行團(tuán)團(tuán)隊(duì)培訓(xùn)訓(xùn),需投入入成本大大概四萬(wàn)萬(wàn)元。信息安全全性VSS它它是基于于文件系系統(tǒng)共享享實(shí)現(xiàn)對(duì)對(duì)服務(wù)器器的訪(fǎng)問(wèn)問(wèn),需要要共享存存儲(chǔ)目錄錄,這樣樣用戶(hù)可可以對(duì)VVSS的的文件夾夾執(zhí)行刪刪除操作作,安全全性不高高。CVS和和SVNN服務(wù)器器有自己己專(zhuān)用的的數(shù)據(jù)庫(kù)庫(kù),文件件存儲(chǔ)并并不采用用“共享享目錄”方式,所以不不受限于于局域網(wǎng)網(wǎng)。安全性性較高。CleaarCaase采采用C/S模式式,
19、需要要共享服服務(wù)器上上的存儲(chǔ)儲(chǔ)目錄以以供客戶(hù)戶(hù)端訪(fǎng)問(wèn)問(wèn),安全全性不高高。性能詳述述VSS優(yōu)點(diǎn):操操作簡(jiǎn)單單,容易易掌握;權(quán)限劃劃分可到到文件夾夾級(jí),有有Reaad、CChecckOuut&CheeckIIn、AAdd/Rennamee/Deelette、DDesttroyy四種權(quán)權(quán)限級(jí)別別。缺點(diǎn)點(diǎn):權(quán)限限管理基基于文件件共享形形式,只只能從文文件夾共共享的權(quán)權(quán)限設(shè)定定對(duì)整個(gè)個(gè)庫(kù)文件件夾的權(quán)權(quán)限,而而且必須須要有可可寫(xiě)權(quán)限限;版本本管理和和分支管管理只能能靠人為為的手工工設(shè)置;版本發(fā)發(fā)行時(shí),只能手手工挑選選對(duì)應(yīng)的的版本文文件進(jìn)行行發(fā)布。最新版本本VSSS8.00主要增加加了以下下功能:支持并行行
20、開(kāi)發(fā)支持基于于Intternnet的的遠(yuǎn)程訪(fǎng)訪(fǎng)問(wèn)模式式分布式團(tuán)團(tuán)隊(duì)協(xié)作作增強(qiáng)CVSCVS 誕生于于 19986 年,當(dāng)當(dāng)時(shí)作為為一組 sheell 腳本而而出現(xiàn);19889年33月,BBriaan BBerllinoor用CC語(yǔ)言重重新設(shè)計(jì)計(jì)并編寫(xiě)寫(xiě)了CVVS的代代碼;119933年前后后,Jiim KKinggdonn最終將將CVSS設(shè)計(jì)成成基于網(wǎng)網(wǎng)絡(luò)的平平臺(tái),開(kāi)開(kāi)發(fā)者們們能從IInteerneet任何何地方獲獲得程序序源代碼碼。截至至目前最最新版本本是20004年年12月月13日日發(fā)布的的功能介介紹代碼統(tǒng)一一管理,保存所所有代碼碼文件更更改的歷歷史記錄錄。對(duì)代代碼進(jìn)行行集中統(tǒng)統(tǒng)一管理理,可
21、以以方便查查看新增增或刪除除的文件件,能夠夠跟蹤所所有代碼碼改動(dòng)痕痕跡。可可以隨意意恢復(fù)到到以前任任意一個(gè)個(gè)歷史版版本。并并避免了了因?yàn)榘姘姹静煌氲牡纳顚覤BUG。完善的沖沖突解決決方案,可以方方便的解解決文件件沖突問(wèn)問(wèn)題,而而不需要要借助其其它的文文件比較較工具和和手工的的粘貼復(fù)復(fù)制。代碼權(quán)限限的管理理,可以為為不同的的用戶(hù)設(shè)設(shè)置不同同的權(quán)限限??梢砸栽O(shè)置訪(fǎng)訪(fǎng)問(wèn)用戶(hù)戶(hù)的密碼碼、只讀讀、修改改等權(quán)限限,而且且通過(guò)CCVS ROOOT目錄錄下的腳腳本,提提供了相相應(yīng)功能能擴(kuò)充的的接口,不但可可以完成成精細(xì)的的權(quán)限控控制,還還能完成成更加個(gè)個(gè)性化的的功能。支持方便便的版本本發(fā)布和和分支功功能
22、。CCVS在在服務(wù)器器端維護(hù)護(hù)代碼文文檔庫(kù),不同的的開(kāi)發(fā)者者在本地地機(jī)器上上建立對(duì)對(duì)應(yīng)代碼碼樹(shù),并并利用CCVS保保持本地地代碼文文檔同代代碼文檔檔庫(kù)的一一致。當(dāng)當(dāng)由于多多個(gè)開(kāi)發(fā)發(fā)者對(duì)文文件的同同時(shí)修改改造成本本地與庫(kù)庫(kù)中的代代碼文件件沖突時(shí)時(shí),CVVS報(bào)告告并協(xié)助助解決沖沖突代碼碼的合并并問(wèn)題。普通開(kāi)開(kāi)發(fā)者(非管理理員)對(duì)對(duì)CVSS的使用用流程。SVNSVN 是一個(gè)個(gè)自由/開(kāi)源版版本控制制系統(tǒng),它管理理文件和和目錄可可以超越越時(shí)間。一組文文件存放放在中心心版本庫(kù)庫(kù),這個(gè)個(gè)版本庫(kù)庫(kù)很像一一個(gè)普通通的文件件服務(wù)器器,只是是它可以以記錄每每一次文文件和目目錄的修修改,這這便使你你可以取取得數(shù)據(jù)據(jù)以
23、前的的版本,從而可可以檢查查所作的的更改。從這個(gè)個(gè)方面看看,許多多人把版版本控制制系統(tǒng)當(dāng)當(dāng)作一種種“時(shí)間間機(jī)器”。 SSVN 可以通通過(guò)網(wǎng)絡(luò)絡(luò)訪(fǎng)問(wèn)它它的版本本庫(kù),從從而使用用戶(hù)可以以在不同同的電腦腦上使用用。一定定程度上上可以說(shuō)說(shuō),允許許用戶(hù)在在各自的的地方修修改同一一份數(shù)據(jù)據(jù)是促進(jìn)進(jìn)協(xié)作。由于所所有的工工作都有有歷史版版本, 你不必必?fù)?dān)心由由于失去去某個(gè)通通道而影影響質(zhì)量量,如果果存在不不正確的的改變,只要取取消改變變。SVVN的歷歷史: 早在220000 年,ColllabbNett, IInc. ( HYPERLINK / hhttpp:/wwww.coollaab.nnet/) 開(kāi)開(kāi)始
24、尋找找CVSS 替代代產(chǎn)品的的開(kāi)發(fā)人人員,CColllabNNet 提供了了一個(gè)協(xié)協(xié)作軟件件套件CCEE (CoollaabNeet EEnteerprrisee Edditiion),它的的一個(gè)組組件是版版本控制制系統(tǒng)。盡管CCEE 在初始始時(shí)使用用CVSS 作為為其版本本控制系系統(tǒng),但但是CVVS 的的局限性性在一開(kāi)開(kāi)始就很很明顯,ColllabbNett 知道道遲早要要找到一一個(gè)更好好的替代代品。遺遺憾的是是,CVVS成為為了開(kāi)源源世界事事實(shí)上的的標(biāo)準(zhǔn),因?yàn)闆](méi)沒(méi)有更好好的產(chǎn)品品,至少少是沒(méi)有有可以自自由使用用的。所所以CoollaabNeet 決決定寫(xiě)一一個(gè)新的的版本控控制系統(tǒng)統(tǒng),建立立
25、在CVVS 思思想之上上的,但但是修正正其錯(cuò)誤誤和不合合理的特特性。 20000 年年2 月月,他們們聯(lián)系OOpenn Soourcce DDeveeloppmennt wwithh CVVS(CCoriioliis, 19999)的的作者KKarll Foogell,并且且詢(xún)問(wèn)他他是否希希望為這這個(gè)新項(xiàng)項(xiàng)目工作作,巧合合的是,當(dāng)時(shí)KKarll 正在在與朋友友Jimm Bllanddy 討討論設(shè)計(jì)計(jì)一個(gè)新新的版本本控制系系統(tǒng)。在在19995 年年,他們們兩個(gè)曾曾經(jīng)開(kāi)辦辦一個(gè)提提供CVVS支持持的公司司Cycclicc Sooftwwaree,盡管管他們最最終賣(mài)掉掉了公司司,但還還是天天天使用C
26、CVS 進(jìn)行日日常工作作,在使使用CVVS 時(shí)時(shí)的挫折折最終促促使他們們認(rèn)真地地去考慮慮如何管管理標(biāo)記記版本的的數(shù)據(jù),而且他他們當(dāng)時(shí)時(shí)不僅僅僅提出了了“SVVN”這這個(gè)名字字,并且且做出了了SVNN 版本本庫(kù)的基基礎(chǔ)設(shè)計(jì)計(jì)。所以以當(dāng)CoollaabNeet 提提出邀請(qǐng)請(qǐng)的時(shí)候候,Kaarl 馬上同同意為這這個(gè)項(xiàng)目目工作,同時(shí)JJim 也得到到了他的的雇主,ReddHatt 軟件件贊助他他到這個(gè)個(gè)項(xiàng)目并并提供了了一個(gè)寬寬松的時(shí)時(shí)間。CColllabNNet 雇傭了了Karrl 和和Benn Coolliins Susssmaan,詳詳細(xì)的設(shè)設(shè)計(jì)從三三月開(kāi)始始,在BBehllenddorff 、C
27、ColllabNNet、Jasson Robbbinns 和和 Grreg Steein(當(dāng)時(shí)是是一個(gè)獨(dú)獨(dú)立開(kāi)發(fā)發(fā)者,活活躍在WWebDDAV/DelltaVV 系統(tǒng)統(tǒng)規(guī)范階階段)的的恰當(dāng)激激勵(lì)的幫幫助下,SVNN 很快快吸引了了許多活活躍的開(kāi)開(kāi)發(fā)者,結(jié)果是是許多有有CVSS 經(jīng)驗(yàn)驗(yàn)的人們們很樂(lè)于于有機(jī)會(huì)會(huì)為這個(gè)個(gè)項(xiàng)目做做些事情情。 最最初的設(shè)設(shè)計(jì)小組組固定在在簡(jiǎn)單的的目標(biāo)上上,他們們不想在在版本控控制方法法學(xué)中開(kāi)開(kāi)墾處女女地,他他們只是是希望修修正CVVS,他他們決定定SVNN 匹配配CVSS 的特特性,保保留相同同的開(kāi)發(fā)發(fā)模型,但不復(fù)復(fù)制CVVS 明明顯的缺缺陷。盡盡管它不不需要成成為CV
28、VS 的的繼任者者,它也也應(yīng)該與與CVSS 保持持足夠的的相似性性,使得得CVSS 用戶(hù)戶(hù)可以輕輕松的做做出轉(zhuǎn)換換。 經(jīng)經(jīng)過(guò)144 個(gè)月月的編碼碼,20001 年8 月311 日,SVNN 自己己能夠“成為服服務(wù)”了了,開(kāi)發(fā)發(fā)者停止止使用CCVS 保存SSVN 的代碼碼,而使使用SVVN 本本身。 當(dāng)CoollaabNeet 開(kāi)開(kāi)始這個(gè)個(gè)項(xiàng)目的的時(shí)候,曾經(jīng)資資助了大大量的工工作(它它為全職職的SVVN 開(kāi)開(kāi)發(fā)者提提供薪水水),SSVN 像許多多開(kāi)源項(xiàng)項(xiàng)目一樣樣,被一一些激勵(lì)勵(lì)知識(shí)界界精英的的寬松透透明的規(guī)規(guī)則支配配著。CColllabNNet 的版權(quán)權(quán)許可證證完全符符合Deebiaan 的的自
29、由軟軟件方針針,也就就是說(shuō),任何人人可以自自由的下下載,修修改和重重新發(fā)布布,不需需要經(jīng)過(guò)過(guò)ColllabbNett 或其其他人的的允許。SVN和和CVSS功能性性對(duì)比: 一、SVVN包含含絕大部部分CVVS功能能 SVN 作為CCVS 的重寫(xiě)寫(xiě)版和改改進(jìn)版,其目標(biāo)標(biāo)就是作作為一個(gè)個(gè)更好的的版本控控制軟件件,取代代目前流流行的CCVS。SVNN 的主主要開(kāi)發(fā)發(fā)人員都都是業(yè)界界知名的的CVSS 專(zhuān)家家。SVN支持持絕大部部分的CCVS 功能/命令;SVNN 的命命令風(fēng)格格和界面面也與CCVS 非常接接近。當(dāng)當(dāng)然,不不同的地地方正是是對(duì)CVVS 的的改進(jìn)。 二、全局局性的版版本編號(hào)號(hào) 一個(gè)新的的版
30、本,并得到到一個(gè)自自增量的的版本號(hào)號(hào)N+11,該版版本號(hào)并并不針對(duì)對(duì)某個(gè)特特定的文文件,而而是全局局性的、針對(duì)整整個(gè)版本本庫(kù)的。因此,我們可可以將SSVN 的版本本庫(kù)看作作是一個(gè)個(gè)文件系系統(tǒng)或文文件目錄錄樹(shù)的數(shù)數(shù)組。 從技術(shù)術(shù)的角度度來(lái)說(shuō),在SVVN 中中,“文文件fooo.cc 的第第5 版版本”這這個(gè)說(shuō)法法是錯(cuò)誤誤的;正正確的說(shuō)說(shuō)法應(yīng)該該是:”文件ffoo.c 在在版本庫(kù)庫(kù)被修改改了5 次,即即執(zhí)行55 次ccommmit 后是什什么樣子子?”。顯然,在SVVN 中中,版本本庫(kù)被修修改5 次后ffoo.c 的的內(nèi)容,和被修修改了66 次后后fooo.c 的內(nèi)容容很可能能完全一一樣,因因?yàn)榘?/p>
31、本本庫(kù)的第第6 次次修改很很可能只只修改了了版本庫(kù)庫(kù)的其他他部分,而并沒(méi)沒(méi)有對(duì)ffoo.c 的的進(jìn)行修修改。相相反,在在CVSS 中,文件ffoo.c 的的第1.1 版版本和第第1.22 版本本總是不不同的。 SVVN 的的全局性性版本編編號(hào)為SSVN 帶來(lái)了了諸多的的優(yōu)勢(shì):如對(duì)目目錄或文文件執(zhí)行行拷貝,無(wú)論涉涉及多少少文件,SVNN 不需需要對(duì)單單個(gè)文件件依次執(zhí)執(zhí)行拷貝貝命令,僅僅需需要建立立一個(gè)指指向相應(yīng)應(yīng)的全局局版本號(hào)號(hào)的一個(gè)個(gè)指針即即可。 三、目錄錄的版本本控制 CVS 只能對(duì)對(duì)文件進(jìn)進(jìn)行版本本控制,不能對(duì)對(duì)目錄進(jìn)進(jìn)行版本本控制,因此CCVS 沒(méi)有任任何關(guān)于于文件“移動(dòng)”(moove)
32、 操作作的概念念。當(dāng)人人為進(jìn)行行文件移移動(dòng)操作作時(shí),CCVS 只能注注意到,一個(gè)文文件在一一個(gè)位置置被刪除除了,而而在一個(gè)個(gè)新位置置創(chuàng)建了了另外一一個(gè)文件件。由于于它不會(huì)會(huì)連接兩兩個(gè)操作作,因此此也很容容易使文文件歷史史軌跡丟丟失。設(shè)設(shè)置 CCVS 存儲(chǔ)庫(kù)庫(kù)時(shí),必必須非常常謹(jǐn)慎地地為每個(gè)個(gè)文件選選擇準(zhǔn)確確的位置置,因?yàn)闉樵谠O(shè)置置之后,幾乎就就要一直直使用這這個(gè)位置置了。 同樣由由于CVVS 不不記錄目目錄的版版本歷史史,CVVS 不不支持對(duì)對(duì)文件的的“重命命名”(rennamee),人人為的對(duì)對(duì)文件進(jìn)進(jìn)行重命命名會(huì)使使得命名名前后的的文件失失去歷史史聯(lián)系,而記錄錄歷史本本來(lái)是版版本管理理的主要
33、要目的。 還有有,CVVS 不不支持對(duì)對(duì)文件的的“拷貝貝”(ccopyy),人人為的拷拷貝對(duì)CCVS 而言,只能看看到新的的文件的的增加,而不能能記錄拷拷貝源文文件和目目標(biāo)文件件之間的的聯(lián)系。 綜上上所述,缺乏對(duì)對(duì)文件“移動(dòng)”、“重重命名”、“拷拷貝”的的支持的的根源在在于CVVS 不不能記錄錄目錄的的版本歷歷史,而而這些操操作在當(dāng)當(dāng)前的軟軟件開(kāi)發(fā)發(fā)過(guò)程中中經(jīng)常發(fā)發(fā)生,這這正是SSVN被被開(kāi)發(fā)并并取代CCVS 的主要要原因之之一。 SVNN 將目目錄作為為一類(lèi)特特殊的文文件來(lái)處處理(事事實(shí)上,從文件件系統(tǒng)的的角度來(lái)來(lái)看,目目錄確實(shí)實(shí)是一類(lèi)類(lèi)特殊的的文件,當(dāng)目錄錄中的子子目錄/文件被被刪除、重命
34、名名、或新新的子目目錄/文文件被創(chuàng)創(chuàng)建時(shí),目錄的的內(nèi)容將將發(fā)生改改變)。因此,SVNN 象記記錄普通通文件的的修改歷歷史一樣樣記錄對(duì)對(duì)目錄的的修改歷歷史,當(dāng)當(dāng)發(fā)生文文件/目目錄的移移動(dòng)、重重命名或或拷貝操操作時(shí),SVNN 能夠夠準(zhǔn)確記記錄操作作前后的的歷史聯(lián)聯(lián)系。同同樣,象象對(duì)文件件的不同同歷史版版本進(jìn)行行比較一一樣,SSVN支支持對(duì)目目錄的不不同歷史史版本的的比較,清晰展展現(xiàn)目錄錄的變化化歷史。 四、原子子性提交交 從使用者者的角度度來(lái)看,CVSS 和SSVN 都支持持對(duì)多個(gè)個(gè)文件修修改的批批量提交交,但二二者在實(shí)實(shí)現(xiàn)方式式上存在在本質(zhì)的的區(qū)別。 CVVS 采采用線(xiàn)性性、串行行的批量量提交,
35、即依次次地,一一個(gè)接一一個(gè)地執(zhí)執(zhí)行提交交,每成成功提交交一個(gè)文文件,該該文件的的一個(gè)新新的版本本即被記記錄到版版本庫(kù)中中,提交交時(shí)用戶(hù)戶(hù)提供的的日志信信息被重重復(fù)地存存儲(chǔ)到每每一個(gè)被被修改的的文件的的版本歷歷史中。 CVVS 串串行批量量提交模模式的弊弊端在于于 當(dāng)任何何原因造造成批量量操作的的中斷時(shí)時(shí)(典型型原因包包括:網(wǎng)網(wǎng)絡(luò)中斷斷、客戶(hù)戶(hù)端死機(jī)機(jī)等),版本庫(kù)庫(kù)往往處處于一個(gè)個(gè)不一致致的狀態(tài)態(tài):原本本應(yīng)該全全部入庫(kù)庫(kù)的文件件只有一一部分入入庫(kù),很很有可能能版本庫(kù)庫(kù)中的最最新版本本不能順順利編譯譯,更為為嚴(yán)重的的是,隨隨著其他他的用戶(hù)戶(hù)執(zhí)行ccvs upddatee 操作作,該不不一致性性將迅
36、速速在開(kāi)發(fā)發(fā)團(tuán)隊(duì)中中擴(kuò)散,從而嚴(yán)嚴(yán)重影響響團(tuán)隊(duì)的的開(kāi)發(fā)效效率,并并存在質(zhì)質(zhì)量隱患患。另外外,假如如該批量量提交的的中斷沒(méi)沒(méi)有被及及時(shí)發(fā)現(xiàn)現(xiàn),開(kāi)發(fā)發(fā)團(tuán)隊(duì)往往往要花花更多的的時(shí)間進(jìn)進(jìn)行軟件件調(diào)試和和排錯(cuò)。 CCVS 即使在在批量提提交不發(fā)發(fā)生中斷斷時(shí)也會(huì)會(huì)造成不不一致:假設(shè)用用戶(hù)A 啟動(dòng)一一個(gè)需要要較長(zhǎng)時(shí)時(shí)間才能能完成的的批量提提交;與與此同時(shí)時(shí),用戶(hù)戶(hù)B 執(zhí)執(zhí)行cvvs uupdaate 操作。此時(shí),用戶(hù)BB 很有有可能得得到一個(gè)個(gè)不一致致的更新新,即用用戶(hù)B 通過(guò)“更新”操作,得到用用戶(hù)A 的部分分修改文文件。 SVNN 徹底底消除了了CVSS 的以以上弊端端。無(wú)論論批量提提交包含含多少文文件
37、修改改,只有有當(dāng)全部部文件修修改都成成功入庫(kù)庫(kù),該提提交才變變得有效效,才對(duì)對(duì)其他用用戶(hù)可見(jiàn)見(jiàn);否則則,無(wú)論論任何原原因造成成中斷,SVNN 都會(huì)會(huì)自動(dòng)執(zhí)執(zhí)行“回回滾”(rolllbaack)操作。換一個(gè)個(gè)說(shuō)法,SVNN 保證證所有的的修改要要么全部部入庫(kù)生生效,要要么一個(gè)個(gè)也不入入庫(kù),即即對(duì)版本本庫(kù)不作作任何的的修改。這就是是SVNN 的原原子性提提交(aatommic commmitt)。 由于SVVN 的的原子性性提交特特性和全全局版本本編號(hào)方方式,當(dāng)當(dāng)提交成成功完成成時(shí),一一個(gè)唯一一的、新新的全局局版本編編號(hào)產(chǎn)生生,而提提交時(shí)用用戶(hù)提供供的日志志信息與與該新的的版本編編號(hào)關(guān)聯(lián)聯(lián),只進(jìn)進(jìn)
38、行一次次存儲(chǔ)(區(qū)別于于CVSS 的按按文件重重復(fù)存儲(chǔ)儲(chǔ))。 五、支支持變更更集概念念 由于SVVN 的的所有提提交是原原子性的的,每次次成功提提交形成成的唯一一的全局局版本號(hào)號(hào)對(duì)應(yīng)此此次批量量提交的的所有文文件修改改,也就就是說(shuō),一個(gè)SSVN 版本號(hào)號(hào)其實(shí)對(duì)對(duì)應(yīng)了一一個(gè)邏輯輯上的變變更集(chaangee seet),該變更更集可能能對(duì)應(yīng)于于對(duì)一個(gè)個(gè)BUGG 的修修復(fù),或或者對(duì)應(yīng)應(yīng)于對(duì)一一個(gè)已有有功能的的改進(jìn),或者對(duì)對(duì)應(yīng)于一一個(gè)新功功能的實(shí)實(shí)現(xiàn)??煽梢哉f(shuō),變更集集是一個(gè)個(gè)軟件開(kāi)開(kāi)發(fā)活動(dòng)動(dòng)的邏輯輯結(jié)果,該變更更集可以以通過(guò)其其對(duì)應(yīng)的的版本號(hào)號(hào)在軟件件開(kāi)發(fā)的的其他過(guò)過(guò)程中(如軟件件合并/集成過(guò)過(guò)程
39、,軟軟件發(fā)布布管理,變更管管理系統(tǒng)統(tǒng),缺陷陷追蹤系系統(tǒng))被被引用。因此,SVNN 將版版本管理理從單純純的、單單個(gè)的文文件修改改的層次次通過(guò)邏邏輯上的的抽象,上升到到更便于于理解和和交流的的開(kāi)發(fā)活活動(dòng)的層層次。 六、差異異化的二二進(jìn)制文文件處理理 由于歷史史原因,CVSS 主要要是為早早期的程程序員設(shè)設(shè)計(jì)的,CVSS 能夠夠有效處處理文本本文件(或ASSCIII文件,源代碼碼文件),可以以對(duì)文本本文件進(jìn)進(jìn)行差異異化的存存儲(chǔ)、新新舊版本本的比較較,文件件合并等等;但對(duì)對(duì)于二進(jìn)進(jìn)制文件件,CVVS 則則明顯力力不從心心。在CCVS 的版本本庫(kù)中,對(duì)于二二進(jìn)制文文件的歷歷史版本本,CVVS 唯唯一能
40、做做的就是是對(duì)不同同的版本本進(jìn)行獨(dú)獨(dú)立的、冗余的的存儲(chǔ),哪怕版版本之間間其實(shí)只只存在微微小的差差異。舉舉例而言言,一個(gè)個(gè)10MM 的二二進(jìn)制文文件(照照片、圖圖形文件件、機(jī)械械設(shè)計(jì)文文件、電電子設(shè)計(jì)計(jì)文件)假如每每周修改改一次,無(wú)論每每次修改改的大小小,一年年下來(lái),僅該文文件就要要消耗5500MM 以上上的存儲(chǔ)儲(chǔ)空間。而且,客戶(hù)端端每次獲獲取該文文件的新新版本都都要消耗耗10MM 的網(wǎng)網(wǎng)絡(luò)流量量。 對(duì)對(duì)于目前前的開(kāi)發(fā)發(fā)團(tuán)隊(duì),無(wú)論是是軟件開(kāi)開(kāi)發(fā),WWeb 站點(diǎn)的的開(kāi)發(fā),手機(jī)等等電子產(chǎn)產(chǎn)品的研研發(fā),需需要進(jìn)行行版本管管理的不不僅是源源代碼等等文本文文件,還還需要管管理需求求文檔、設(shè)計(jì)文文檔、測(cè)測(cè)試
41、文檔檔、用戶(hù)戶(hù)手冊(cè),圖形圖圖像文件件,機(jī)械械/電子子設(shè)計(jì)文文件等諸諸多的二二進(jìn)制文文件,CCVS 顯然不不是一個(gè)個(gè)好的選選擇。 與CVVS 不不同,SSVN 采用統(tǒng)統(tǒng)一的二二進(jìn)制差差異算法法(biinarry ddifffereenciing alggoriithmm),即即對(duì)文本本文件和和二進(jìn)制制文件采采用相同同的差異異比較算算法,并并以相同同的方式式在版本本庫(kù)中進(jìn)進(jìn)行存儲(chǔ)儲(chǔ):每次次提交后后版本庫(kù)庫(kù)中只存存儲(chǔ)相對(duì)對(duì)于先前前版本的的差異,從而可可以節(jié)省省大量的的存儲(chǔ)空空間。 該二進(jìn)進(jìn)制差異異算法不不僅應(yīng)用用在版本本的存儲(chǔ)儲(chǔ)上,更更為重要要的是,SVNN 對(duì)二二進(jìn)制文文件與文文本文件件一視同同仁
42、,當(dāng)當(dāng)客戶(hù)端端需要獲獲取新的的版本時(shí)時(shí)(如執(zhí)執(zhí)行svvn uupdaate),在網(wǎng)網(wǎng)絡(luò)上只只有版本本的差異異被傳輸輸,從而而大大減減少對(duì)網(wǎng)網(wǎng)絡(luò)帶寬寬的消耗耗。更多多細(xì)節(jié)參參見(jiàn)“七七、雙向向的差異異化壓壓縮網(wǎng)絡(luò)絡(luò)傳輸”。 七、 雙雙向的差差異化壓縮網(wǎng)網(wǎng)絡(luò)傳輸輸 如上所述述,CVVS 對(duì)對(duì)二進(jìn)制制文件不不能進(jìn)行行有效的的差異化化處理。對(duì)于文文本文件件,CVVS 僅僅僅支持持單向的的差異化化傳輸:從CVVS 服服務(wù)器到到客戶(hù)端端的傳輸輸是差異異化的,即執(zhí)行行cvss uppdatte 時(shí)時(shí),只有有差異的的部分從從服務(wù)器器傳輸?shù)降娇蛻?hù)端端;而當(dāng)當(dāng)執(zhí)行ccvs commmitt 時(shí),無(wú)論代代碼變化化多少
43、,CVSS 都需需要從客客戶(hù)端向向服務(wù)器器完整傳傳輸被修修改文件件的全部部?jī)?nèi)容,不能只只傳輸差差異。 相反,無(wú)論是是文本文文件還是是二進(jìn)制制文件,SVNN 都進(jìn)進(jìn)行雙向向的差異異化傳輸輸,并且且差異化化內(nèi)容還還要進(jìn)行行壓縮/解壓縮縮的過(guò)程程:在服服務(wù)器端端獲取差差異顯而而易見(jiàn),與CVVS 類(lèi)類(lèi)似;SSVN 在客戶(hù)戶(hù)端獲取取差異的的秘密在在于 SVVN 在在客戶(hù)端端的工作作拷貝中中隱含了了每個(gè)文文件的一一個(gè)“只只讀的、干凈的的”副本本(該副副本隱藏藏在隱含含目錄.svnn 里,通常不不可見(jiàn),該副本本還有更更多的妙妙用,參參見(jiàn)“十十二、更更多的本本地/離離線(xiàn)操作作”),通過(guò)比比較用戶(hù)戶(hù)在客戶(hù)戶(hù)端的
44、修修改和該該隱含的的副本,SVNN 獲取取需要真真正傳送送到服務(wù)務(wù)器的差差異,并并對(duì)差異異進(jìn)行壓壓縮后才才進(jìn)行網(wǎng)網(wǎng)絡(luò)傳輸輸。 對(duì)對(duì)CVSS 而言言,操作作的成本本(網(wǎng)絡(luò)絡(luò)帶寬消消耗是最最大的操操作成本本)與被被修改的的文件的的大小成成比例,而與修修改本身身的大小小無(wú)關(guān);對(duì)SVVN 而而言,操操作成本本只與修修改本身身的大小小成比例例,而與與被修改改的文件件的大小小無(wú)關(guān)。因此,與CVVS 相相比,SSVN 消耗更更少的網(wǎng)網(wǎng)絡(luò)帶寬寬(以客客戶(hù)端的的存儲(chǔ)空空間換取取更少的的帶寬消消耗在目目前的計(jì)計(jì)算環(huán)境境下應(yīng)該該是個(gè)相相當(dāng)不錯(cuò)錯(cuò)的選擇擇?。?。SVNN 更加加適合基基于互聯(lián)聯(lián)網(wǎng)(或或廣域網(wǎng)網(wǎng))進(jìn)行行協(xié)
45、作開(kāi)開(kāi)發(fā)的地地理上分分布的團(tuán)團(tuán)隊(duì) 版本本服務(wù)器器集中、單一;客戶(hù)端端廣泛分分布。 八、高效效、快捷捷創(chuàng)建分分支和基基線(xiàn) CVS 和SVVN 都都支持分分支(bbrannch)和基線(xiàn)線(xiàn)(taag),通過(guò)分分支與合合并,可可以有效效支持大大項(xiàng)目的的并行開(kāi)開(kāi)發(fā)模式式;通過(guò)過(guò)基線(xiàn)管管理,可可以準(zhǔn)確確標(biāo)識(shí)一一組文件件的版本本,有效效進(jìn)行軟軟件發(fā)布布管理和和必要時(shí)時(shí)的歷史史回溯。 但CCVS 和SVVN 在在實(shí)現(xiàn)分分支和基基線(xiàn)的方方式上存存在很大大的不同同。CVVS 在在創(chuàng)建分分支的時(shí)時(shí)候,需需要對(duì)所所有進(jìn)行行分支的的文件進(jìn)進(jìn)行依次次的操作作,因此此分支的的建立成成本(主主要是建建立分支支所需的的時(shí)間,或
46、消耗耗的計(jì)算算資源)與參與與分支的的文件數(shù)數(shù)量成比比例,項(xiàng)項(xiàng)目越大大,版本本庫(kù)越大大,文件件越多,分支的的建立成成本越高高;基線(xiàn)線(xiàn)(taag)的的建立與與此類(lèi)似似。 SSVN 的分支支和基線(xiàn)線(xiàn)是通過(guò)過(guò)執(zhí)行“拷貝”來(lái)建立立的:回回想一下下在沒(méi)有有引入版版本管理理工具的的時(shí)候我我們是如如何進(jìn)行行所謂的的“分支支”和“基線(xiàn)”管理的的?答案案顯然是是“拷貝貝” 我們們通過(guò)“拷貝”或“備備份”來(lái)來(lái)建立基基線(xiàn);同同樣,為為支持多多個(gè)開(kāi)發(fā)發(fā)人員可可以同時(shí)時(shí)進(jìn)行開(kāi)開(kāi)發(fā),我我們?yōu)槊棵總€(gè)開(kāi)發(fā)發(fā)人員創(chuàng)創(chuàng)建一份份“拷貝貝”。由由此看來(lái)來(lái),SVVN 通通過(guò)“拷拷貝”來(lái)來(lái)建立分分支和基基線(xiàn)顯得得非常自自然,有有點(diǎn)“返返樸
47、歸真真”的意意思。 由于SVVN 的的全局版版本號(hào)特特性,SSVN 中分支支或基線(xiàn)線(xiàn)的創(chuàng)建建過(guò)程,或SVVN中的的“拷貝貝”過(guò)程程,真正正的操作作是在版版本庫(kù)中中創(chuàng)建一一個(gè)到某某一全局局版本號(hào)號(hào)的指針針(poointter),不再再需要針針對(duì)眾多多的單個(gè)個(gè)文件依依次執(zhí)行行操作。因此,該操作作的成本本為一個(gè)個(gè)很小的的常數(shù),與項(xiàng)目目大小,版本庫(kù)庫(kù)大小,文件數(shù)數(shù)目的多多少無(wú)關(guān)關(guān);并且且,分支支或基線(xiàn)線(xiàn)的建立立不需要要進(jìn)行版版本的冗冗余存儲(chǔ)儲(chǔ),新建建立的分分支或基基線(xiàn)基本本不占用用版本庫(kù)庫(kù)空間,分支的的后續(xù)存存儲(chǔ)空間間的開(kāi)銷(xiāo)銷(xiāo)也只與與修改的的大小有有關(guān)。 九、集成成Apaachee Weeb SSer
48、vver,提供更更多的特特性 SVN 通過(guò)與與Apaachee Weeb SServver 的集成成,可以以提供基基于htttp/htttps 協(xié)議的的版本庫(kù)庫(kù)訪(fǎng)問(wèn)機(jī)機(jī)制,從從而支持持SVNN 跨越越防火墻墻的安全全訪(fǎng)問(wèn)。除此以以外,SSVN 還可以以利用更更多的AApacche 特性,包括但但不限于于:Appachhe 豐豐富的用用戶(hù)認(rèn)證證機(jī)制(包括通通過(guò)LDDAP服服務(wù)器如如Winndowws AActiive Dirrecttoryy 服務(wù)務(wù)器的用用戶(hù)認(rèn)證證),基基于目錄錄路徑的的精細(xì)粒粒度的訪(fǎng)訪(fǎng)問(wèn)控制制,對(duì)傳傳輸?shù)木W(wǎng)網(wǎng)絡(luò)流量量進(jìn)行壓壓縮/解解壓縮,瀏覽版版本庫(kù)目目錄結(jié)構(gòu)構(gòu)等等。 十、支
49、持持WebbDAVV WebDDAV(Webb-baasedd Diistrribuutedd Auuthoorinng aand Verrsiooninng)是是一種基基于 HHTTPP 1.1 協(xié)協(xié)議的通通信協(xié)議議.它擴(kuò)擴(kuò)展了HHTTPP 1.1,在在GETT、POOST、HEAAD 等等幾個(gè)HHTTPP 標(biāo)準(zhǔn)準(zhǔn)方法以以外添加加了一些些新的方方法,使使應(yīng)用程程序可直直接對(duì)WWeb Serrverr 直接接讀寫(xiě),并支持持寫(xiě)文件件鎖定(Locckinng)及及解鎖(Unllockk),還還可以支支持文件件的版本本控制。 Miicroosofft wwinddowss20000/XXP 及及IE
50、, Offficce 還還有Addobee/MiicrooMeddia 的DWW 等都都支持WWebDDAV,這又大大大增強(qiáng)強(qiáng)了Weeb 應(yīng)應(yīng)用的價(jià)價(jià)值,以以及效能能。對(duì)于于需要大大量發(fā)布布內(nèi)容的的用戶(hù)而而言,應(yīng)應(yīng)用WeebDAAV 可可以降低低對(duì)CMMS 系系統(tǒng)的依依賴(lài),而而且能夠夠更自由由的進(jìn)行行創(chuàng)作。上傳、下載變變得輕松松自如。 SVVN 通通過(guò)與AApacche Webb Seerveer 的的集成,支持WWebDDAV 協(xié)議,使得業(yè)業(yè)務(wù)用戶(hù)戶(hù)(buusinnesss usserss)或非非技術(shù)用用戶(hù)在不不安裝任任何版本本管理客客戶(hù)端的的情況下下輕松訪(fǎng)訪(fǎng)問(wèn)SVVN 版版本庫(kù),不改變變業(yè)
51、務(wù)用用戶(hù)已有有使用習(xí)習(xí)慣,支支持分布布的業(yè)務(wù)務(wù)用戶(hù)對(duì)對(duì)文檔的的評(píng)審、修改并并實(shí)現(xiàn)版版本控制制,真正正將軟件件開(kāi)發(fā)的的生命周周期從開(kāi)開(kāi)發(fā)/技技術(shù)團(tuán)隊(duì)隊(duì)擴(kuò)展到到項(xiàng)目的的全部干干系人(staakehholdder),避免免通過(guò)電電子郵件件傳遞文文檔的混混亂與無(wú)無(wú)序、通通過(guò)Wiindoows 操作系系統(tǒng)共享享造成的的安全漏漏洞、病病毒攻擊擊、歷史史版本被被覆蓋或或丟失、審計(jì)困困難等諸諸多典型型問(wèn)題。 十一、更更好的沖沖突標(biāo)識(shí)識(shí)與處理理 CVS 和SVVN 都都支持通通過(guò)分支支與合并并進(jìn)行并并行開(kāi)發(fā)發(fā),并可可以自動(dòng)動(dòng)檢測(cè)到到合并時(shí)時(shí)的沖突突(coonfllictts),并在合合并結(jié)果果中以標(biāo)標(biāo)識(shí)合并并的
52、沖突突部分。 在CCVS 中,經(jīng)經(jīng)常會(huì)出出現(xiàn)由于于用戶(hù)的的疏忽(如,沒(méi)沒(méi)有注意意到?jīng)_突突,或沒(méi)沒(méi)有完全全處理好好沖突)而將仍仍然帶有有沖突標(biāo)標(biāo)識(shí)符號(hào)號(hào)的文件件直接進(jìn)進(jìn)行提交交(coommiit),從而在在版本庫(kù)庫(kù)中產(chǎn)生生垃圾版版本。 SVNN 有效效解決了了CVSS 的以以上問(wèn)題題:SVVN 記記錄并保保持文件件的沖突突狀態(tài),只有當(dāng)當(dāng)用戶(hù)明明確執(zhí)行行svnn reesollvedd 命令令后,該該沖突狀狀態(tài)標(biāo)識(shí)識(shí)才被復(fù)復(fù)位,該該文件才才能被提提交,從從而大大大減少了了將仍然然帶有沖沖突標(biāo)識(shí)識(shí)符號(hào)的的文件直直接進(jìn)行行提交的的可能性性。 十二、 更多的的本地/離線(xiàn)操操作 眾所周知知,CVVS 客客
53、戶(hù)端的的工作拷拷貝中包包含了一一個(gè)隱含含目錄CCVS,該目錄錄中記錄錄了客戶(hù)戶(hù)端需要要的一些些管理信信息;與與此類(lèi)似似,SVVN 的的客戶(hù)端端工作拷拷貝中也也包含了了一個(gè)隱隱含目錄錄.svvn,該該目錄中中同樣記記錄了客客戶(hù)端需需要的一一些管理理信息,如版本本庫(kù)URRL,當(dāng)當(dāng)前訪(fǎng)問(wèn)問(wèn)版本號(hào)號(hào)等。 與CVVS 不不同的是是,SVVN 的的.svvn 目目錄中還還包含了了工作拷拷貝中每每一個(gè)文文件的一一個(gè)“只只讀的、干凈的的”副本本。正是是由于該該副本的的存在,使得SSVN 與CVVS 相相比,可可以執(zhí)行行更多的的本地/離線(xiàn)操操作,即即某些操操作不需需要訪(fǎng)問(wèn)問(wèn)版本庫(kù)庫(kù)服務(wù)器器,因此此不需要要存在從
54、從客戶(hù)端端到服務(wù)務(wù)器的網(wǎng)網(wǎng)絡(luò)鏈接接,當(dāng)然然也不消消耗任何何網(wǎng)絡(luò)帶帶寬,這這進(jìn)一步步增強(qiáng)了了SVNN 對(duì)廣廣域網(wǎng)的的友好支支持。 SVN 的以下下命令可可以進(jìn)行行離線(xiàn)操操作:ssvn staatuss 顯示工工作拷貝貝上的本本地修改改概況;svnn diiff 顯示示工作拷拷貝上的的本地修修改細(xì)節(jié)節(jié),比較較修改前前后的內(nèi)內(nèi)容;ssvn revvertt 撤銷(xiāo)工工作拷貝貝上的本本地修改改; 十三、 對(duì)符號(hào)號(hào)鏈接進(jìn)進(jìn)行版本本管理 在Uniix 文文件系統(tǒng)統(tǒng)中,符符號(hào)鏈接接(syymboolicc liinkss,包括括硬鏈接接和軟鏈鏈接)是是一種重重要的文文件系統(tǒng)統(tǒng)元素。CVSS 不能能對(duì)符號(hào)號(hào)鏈接
55、進(jìn)進(jìn)行版本本管理;SVNN 則可可以對(duì)符符號(hào)鏈接接進(jìn)行版版本管理理。 十四、 元數(shù)據(jù)據(jù)管理 與CVSS 相比比,SVVN 增增加了元元數(shù)據(jù)(mettadaata)管理機(jī)機(jī)制。即即可以對(duì)對(duì)版本庫(kù)庫(kù)中的文文件或目目錄附加加任意的的“屬性性”(pproppertty),并記錄錄屬性的的變化歷歷史,也也就是對(duì)對(duì)元數(shù)據(jù)據(jù)進(jìn)行版版本管理理。一個(gè)個(gè)SVNN 屬性性是一個(gè)個(gè)“屬性性名稱(chēng)/屬性值值”的二二元組,如“BBugNNumbber= 1000”就就是一個(gè)個(gè)屬性,可以將將該屬性性附加到到版本NN 上,以說(shuō)明明版本NN 改正正了編號(hào)號(hào)為1000的BBUG。 SVVN 元元數(shù)據(jù)的的目的是是提供附附件的信信息以
56、滿(mǎn)滿(mǎn)足流程程或過(guò)程程自動(dòng)化化的需要要,以增增強(qiáng)SVVN 的的管理能能力和自自動(dòng)化程程度。SSVN 自身就就通過(guò)“屬性”來(lái)存儲(chǔ)儲(chǔ)一些特特殊的信信息。一一個(gè)使用用SVNN 元數(shù)數(shù)據(jù)的例例子:可可以在一一些批處處理的腳腳本程序序或SVVN的鉤鉤子程序序(hoookss)中創(chuàng)創(chuàng)建、訪(fǎng)訪(fǎng)問(wèn)、修修改“屬屬性”元元數(shù)據(jù)來(lái)來(lái)滿(mǎn)足流流程自動(dòng)動(dòng)化的要要求。非功能性性對(duì)比:性能、可用性性、可擴(kuò)擴(kuò)展性: 一、層次次化的體體系架構(gòu)構(gòu) 盡管CVVS 是是開(kāi)放源源代碼的的,但同同樣由于于歷史的的原因,即使是是CVSS 的主主要開(kāi)發(fā)發(fā)和維護(hù)護(hù)人員也也認(rèn)為目目前CVVS 的的代碼很很難進(jìn)行行后續(xù)的的維護(hù)和和擴(kuò)展,而這正正是SV
57、VN 被被重寫(xiě)的的主要原原因之一一。 SSVN 具備設(shè)設(shè)計(jì)良好好的三層層體系架架構(gòu) 版本本庫(kù)層(Repposiitorry LLayeer),版本庫(kù)庫(kù)訪(fǎng)問(wèn)層層(Reepossitoory Acccesss Laayerr),和和客戶(hù)端端層(CClieent Layyer)。 SSVN 在層與與層之間間定義了了明確的的接口,使之具具備更好好的擴(kuò)展展性。 SVN 的體系系架構(gòu)如如下圖所所示: 二、可選選的后臺(tái)臺(tái)版本庫(kù)庫(kù)實(shí)現(xiàn) CVS 的版本本庫(kù)以普普通的文文件系統(tǒng)統(tǒng)方式實(shí)實(shí)現(xiàn);SSVN 的版本本庫(kù)支持持兩種實(shí)實(shí)現(xiàn)方式式:以嵌嵌入式的的數(shù)據(jù)庫(kù)庫(kù)BerrkelleyDDB 實(shí)實(shí)現(xiàn),或或,采用用特定格格式
58、的普普通文件件系統(tǒng)FFSFSS 方式式實(shí)現(xiàn)。二者在在可擴(kuò)展展性、性性能、備備份/恢恢復(fù)等方方面各有有特色,用戶(hù)可可以根據(jù)據(jù)自身的的實(shí)際需需求進(jìn)行行靈活的的選擇。 三、更好好的性能能和可用用性 由于CVVS 主主要針對(duì)對(duì)文本文文件的版版本處理理而設(shè)計(jì)計(jì),CVVS 在在處理大大文件時(shí)時(shí)存在性性能和可可用性問(wèn)問(wèn)題 CVVS 在在執(zhí)行提提交時(shí)需需要向服服務(wù)器傳傳輸整個(gè)個(gè)文件的的內(nèi)容。一方面面,處理理文件的的大小受受制與客客戶(hù)端可可用內(nèi)存存的多少少;另一一方面,大文件件的處理理將占用用服務(wù)器器的絕大大部分資資源,可可能導(dǎo)致致服務(wù)器器性能?chē)?yán)嚴(yán)重下降降,使得得其他用用戶(hù)無(wú)法法訪(fǎng)問(wèn)和和工作,甚至出出現(xiàn)服務(wù)務(wù)器
59、宕機(jī)機(jī)。 SSVN 從設(shè)計(jì)計(jì)上根本本杜絕了了CVSS 的上上述問(wèn)題題。SVVN 能能夠處理理任意大大小的文文件,包包括比可可用內(nèi)存存還大的的文件,并且無(wú)無(wú)論是在在客戶(hù)端端還是在在服務(wù)器器端,SSVN 始終只只需要一一個(gè)相對(duì)對(duì)小、相相對(duì)固定定的內(nèi)存存開(kāi)銷(xiāo) SSVN 能夠進(jìn)進(jìn)行雙向向的差異異化/壓壓縮的網(wǎng)網(wǎng)絡(luò)傳輸輸,而且且無(wú)論差差異的大大小,SSVN 始終以以大小固固定的管管道方式式或流模模式(sstreeam)執(zhí)行網(wǎng)網(wǎng)絡(luò)傳輸輸。事實(shí)實(shí)上,由由于客戶(hù)戶(hù)端參與與了差異異的計(jì)算算,SVVN 讓讓大量的的客戶(hù)端端一起分分擔(dān)服務(wù)務(wù)器的處處理負(fù)荷荷,從而而從整體體上提高高了SVVN 的的性能和和可用性性。
60、四、可解解析、格格式規(guī)范范的輸出出 從用戶(hù)的的角度來(lái)來(lái)看,命命令行方方式下的的SVNN 的風(fēng)風(fēng)格與CCVS 的風(fēng)格格非常類(lèi)類(lèi)似,但但SVNN 還是是做了重重大的改改進(jìn):SSVN 命令行行方式下下的輸出出經(jīng)過(guò)了了“認(rèn)真真、仔細(xì)細(xì)”的設(shè)設(shè)計(jì),使使得其輸輸出不僅僅便于“人”的的閱讀和和理解,同樣便便于程序序腳本的的自動(dòng)化化解析,或者說(shuō)說(shuō),適合合“機(jī)器器”的閱閱讀和理理解。因因此,在在SVNN 下編編寫(xiě)批量量的自動(dòng)動(dòng)化腳本本程序更更加容易易,腳本本工作更更加可靠靠。 五、更好好的本地地化、國(guó)國(guó)際化支支持SVVN 從從一開(kāi)始始就充分分考慮到到本地化化( LLocaalizzatiion , LL10NN
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 班級(jí)戶(hù)外策劃方案
- 石河子大學(xué)《園林工程制圖》2021-2022學(xué)年第一學(xué)期期末試卷
- 房屋維修協(xié)議書(shū)范本(11篇)
- 石河子大學(xué)《跨文化傳播》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《數(shù)字圖像處理》2022-2023學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《俄羅斯文學(xué)史》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《超精密制造工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 國(guó)家工商總局 建設(shè)工程勘察合同
- 合伙人招募合同
- 2024高考政治一輪復(fù)習(xí)第三單元發(fā)展社會(huì)主義民主政治第六課我國(guó)的人民代表大會(huì)制度課時(shí)作業(yè)含解析必修2
- 商業(yè)銀行會(huì)計(jì)業(yè)務(wù)檢查方案
- 《民航法》課程標(biāo)準(zhǔn)
- 05 02 第五章第二節(jié) 吸收借鑒優(yōu)秀道德成果
- 二十四節(jié)氣課件:《立冬》
- 數(shù)與代數(shù)領(lǐng)域教學(xué)策略學(xué)習(xí)教案課件
- 義務(wù)教育語(yǔ)文課程常用字表-(3500字)
- 畜禽環(huán)境衛(wèi)生-畜舍環(huán)境控制-PPT演示文稿
- 三年級(jí)上冊(cè)數(shù)學(xué)課件-7.2 認(rèn)識(shí)幾分之一丨蘇教版 (共28張PPT)
- 大理石檢測(cè)報(bào)告
- 2022年深圳市地鐵集團(tuán)有限公司招聘筆試題庫(kù)及答案解析
- (精選word)高支模安全監(jiān)理巡視檢查記錄表
評(píng)論
0/150
提交評(píng)論