subversion管理軟件使用情況
本文介紹subversion管理軟件,subversion(簡(jiǎn)稱svn)是近年來(lái)崛起的版本管理軟件,是cvs的接班人。目前,絕大多數(shù)開(kāi)源軟件都使用svn作為代碼版本管理軟件,它是一款非常實(shí)用的管理工具。
1.與CVS對(duì)比
在SVN之前,CVS是使用最廣泛的版本管理軟件。SVN與CVS對(duì)比的優(yōu)點(diǎn)如下:
◆統(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ì)引起數(shù)據(jù)庫(kù)的不完整和數(shù)據(jù)損壞。
◆重命名、復(fù)制、刪除文件等動(dòng)作都保存在版本歷史記錄當(dāng)中。
◆對(duì)于二進(jìn)制文件,使用了節(jié)省空間的保存方法。(簡(jiǎn)單的理解,就是只保存和上一版本不同之處)
◆目錄也有版本歷史。整個(gè)目錄樹(shù)可以被移動(dòng)或者復(fù)制,操作很簡(jiǎn)單,而且能夠保留全部版本記錄。
◆分支的開(kāi)銷非常小。
◆優(yōu)化過(guò)的數(shù)據(jù)庫(kù)訪問(wèn),使得一些操作不必訪問(wèn)數(shù)據(jù)庫(kù)就可以做到。這樣減少了很多不必要的和數(shù)據(jù)庫(kù)主機(jī)之間的網(wǎng)絡(luò)流量。
2.使用情況
雖然在 2006年 時(shí) subversion管理軟件的使用族群仍然遠(yuǎn)少于傳統(tǒng)的 CVS,但已經(jīng)有許多開(kāi)放原碼團(tuán)體決定將 CVS 轉(zhuǎn)換為 Subversion。已經(jīng)轉(zhuǎn)換使用 Subversion 的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及許多團(tuán)體。
許多開(kāi)發(fā)團(tuán)隊(duì)換用 subversion管理軟件 是因?yàn)?Trac、SourceForge、CollabNet、CodeBeamer等專案協(xié)同作業(yè)軟件以及Eclipse、NetBeans等IDE提供 Subversion的支援整合。 除此之外,一些自由軟件開(kāi)發(fā)的協(xié)作網(wǎng)如SourceForge.net除了提供 CVS 外,現(xiàn)在也提供專案開(kāi)發(fā)者使用 Subversion 作為原碼管理系統(tǒng), JavaForge、Google Code以及 BountySource 則以 Subversion 作為官方的原碼管理系統(tǒng)。
2009年,絕大多數(shù)CVS服務(wù)已經(jīng)改用SVN。CVS已經(jīng)停止維護(hù)。
3.客戶端
Subversion的客戶端有兩類,一類是websvn等基于web的,一種是以TortoiseSVN為代表的客戶端軟件。前者需要web服務(wù)器的支持,后者需要用戶在本地安裝客戶端,兩種都有免費(fèi)開(kāi)源軟件供使用。
4.服務(wù)器
subversion管理軟件支持linux和windows,更多是安裝在linux下。
svn服務(wù)器有2種運(yùn)行方式:獨(dú)立服務(wù)器和借助apache。2種方式各有利弊。
svn存儲(chǔ)版本數(shù)據(jù)也有2種方式:BDB和FSFS。因?yàn)锽DB方式在服務(wù)器中斷時(shí),有可能鎖住數(shù)據(jù),所以還是FSFS方式更安全一點(diǎn)。
5.不足
只能設(shè)置目錄的訪問(wèn)權(quán)限,無(wú)法設(shè)置單個(gè)文件的訪問(wèn)權(quán)限。
【編輯推薦】