查ICP網(wǎng):全新的綜合網(wǎng)站備案信息查詢網(wǎng)
Copyright ? 2008-2028 www.mshuangcha.com [ 查icp] All Rights Reserved.
SVN是subversion的縮寫(xiě),是一個(gè)開(kāi)放源代碼的版本控制系統(tǒng),通過(guò)采用分支管理系統(tǒng)的高效管理,簡(jiǎn)而言之就是用于多個(gè)人共同開(kāi)發(fā)同一個(gè)項(xiàng)目,實(shí)現(xiàn)共享資源,實(shí)現(xiàn)最終集中式的管理。
SVN采用客戶端/服務(wù)器體系,項(xiàng)目的各種版本都存儲(chǔ)在服務(wù)器上,程序開(kāi)發(fā)人員首先將從服務(wù)器上獲得一份項(xiàng)目的最新版本,并將其復(fù)制到本機(jī),然后在此基礎(chǔ)上,每個(gè)開(kāi)發(fā)人員可以在自己的客戶端進(jìn)行獨(dú)立的開(kāi)發(fā)工作,并且可以隨時(shí)將新代碼提交給服務(wù)器。當(dāng)然也可以通過(guò)更新操作獲取服務(wù)器上的最新代碼,從而保持與其他開(kāi)發(fā)者所使用版本的一致性。 [3]
SVN的客戶端有兩類,一類是基于Web的WebSVN等,另一類是以Tortoise SVN為代表的客戶端軟件。前者需要Web服務(wù)器的支持,后者需要用戶在本地安裝客戶端,兩種都有免費(fèi)的開(kāi)源軟件供使用。SVN存儲(chǔ)版本數(shù)據(jù)也兩種方式:BDB(一種事務(wù)安全型表類型)和FSFS(一種不需要數(shù)據(jù)庫(kù)的存儲(chǔ)系統(tǒng))。因?yàn)锽DB方式在服務(wù)器中斷時(shí),有可能鎖住數(shù)據(jù),所以還是FSFS方式更安全一點(diǎn)。
svn的特性
統(tǒng)一的版本號(hào)。CVS是對(duì)每個(gè)檔案順序編排版本號(hào),在某一時(shí)間各檔案的版本號(hào)各不相同。而Subversion下,任何一次提交都會(huì)對(duì)所有檔案增加到同一個(gè)新版本號(hào),即使是提交并不涉及的檔案。所以,各檔案在某任意時(shí)間的版本號(hào)是相同的。版本號(hào)相同的檔案構(gòu)成軟體的一個(gè)版本。
原子提交。一次提交不管是單個(gè)還是多個(gè)檔案,都是作為一個(gè)整體提交的。在這當(dāng)中發(fā)生的意外例如傳輸中斷,不會(huì)引起資料庫(kù)的不完整和數(shù)據(jù)損壞。
重新命名、復(fù)制、刪除檔案等動(dòng)作都儲(chǔ)存在版本歷史記錄當(dāng)中。
對(duì)于二進(jìn)制檔案,使用了節(jié)省空間的儲(chǔ)存方法(簡(jiǎn)單的理解,就是只儲(chǔ)存和上一版本不同之處)。
目錄也有版本歷史。整個(gè)目錄樹(shù)可以被移動(dòng)或者復(fù)制,操作很簡(jiǎn)單,而且能夠保留全部版本記錄。
分支的開(kāi)銷非常小。
最佳化過(guò)的資料庫(kù)存取,使得一些操作不必存取資料庫(kù)就可以做到。這樣減少了很多不必要的和資料庫(kù)主機(jī)之間的網(wǎng)路流量。
支援元資料(Metadata)管理。每個(gè)目錄或檔案都可以定義屬性(Property),它是一些隱藏的鍵值對(duì),使用者可以自訂屬性內(nèi)容,而且屬性和檔案內(nèi)容一樣在版本控制范圍內(nèi)。
支援FSFS和Berkeley DB兩種資料庫(kù)格式。