情報(bào)獲悉Subversion1.6.11發(fā)布,敬請(qǐng)關(guān)注
據(jù)悉Subversion1.6.11發(fā)布已經(jīng)揭曉,共所周知現(xiàn)在互聯(lián)網(wǎng)上免費(fèi)的版本控制服務(wù)多基于Subversion,因?yàn)樗且粋€(gè)版本控制系統(tǒng),相對(duì)于的RCS、CVS,采用了分支管理系統(tǒng),它的設(shè)計(jì)目標(biāo)就是取代CVS。下面先看一下它和CVS的比較:
1.對(duì)重命名、刪除文件的支持
CVS:不支持本地文件重命名提交
刪除分remove和erase兩種前者把本地和庫(kù)中文件都刪除后者只是刪除本地文件
不能刪除文件夾
SVN:支持文件重命名提交系統(tǒng)會(huì)提示刪除舊文件,創(chuàng)建新文件
刪除本地文件提交庫(kù)中文件也被刪除
2.對(duì)中文路徑名的支持
CVS:支持的比較好
SVN:要將權(quán)限控制文件保存為SVN支持的UTF-8格式
3.本地文件與庫(kù)的對(duì)應(yīng)關(guān)系
CVS:可以多對(duì)多
SVN:一個(gè)庫(kù)可以有多個(gè)工作目錄但一個(gè)工作目錄只能對(duì)應(yīng)一個(gè)庫(kù)雖然可以更改庫(kù)位置但是要求很嚴(yán)格
4.庫(kù)中文件存放方式
CVS:完全用戶可見方式與客戶端文件夾結(jié)構(gòu)完全一直(CVS生成文件除外)
SVN:與vss相似,看不到文件真正的內(nèi)容
5.用戶、權(quán)限管理
CVS:管理員很難清楚的知道一個(gè)項(xiàng)目到底有多少個(gè)用戶各用戶的權(quán)限和密碼是什么只能用分組的方式管理用戶而且密碼和權(quán)限還是不清晰
SVN:查看、修改配置文件即可
6.權(quán)限
CVS:有read、write、creat、none這四種權(quán)限,任何人不能刪除文件夾。
SVN:只有read、write、none三種權(quán)限creat和delete權(quán)限好象和write是捆綁在一起的
Subversion1.6.11發(fā)布體現(xiàn)了Subversion的快速發(fā)展,通過(guò)與ConcurrentVersionsSystem(CVS)的比較我們可以看到它的優(yōu)勢(shì)。
優(yōu)于CVS之處
原子提交。一次提交不管是單個(gè)還是多個(gè)文件,都是作為一個(gè)整體提交的。在這當(dāng)中發(fā)生的意外例,如傳輸中斷,不會(huì)引起數(shù)據(jù)庫(kù)的不完整和數(shù)據(jù)損壞。重命名、復(fù)制、刪除文件等動(dòng)作都保存在版本歷史記錄當(dāng)中。對(duì)于二進(jìn)制文件,使用了節(jié)省空間的保存方法。(簡(jiǎn)單的理解,就是只保存和上一版本不同之處)目錄也有版本歷史。整個(gè)目錄樹可以被移動(dòng)或者復(fù)制,操作很簡(jiǎn)單,而且能夠保留全部版本記錄。分支的開銷非常小。優(yōu)化過(guò)的數(shù)據(jù)庫(kù)訪問(wèn),使得一些操作不必訪問(wèn)數(shù)據(jù)庫(kù)就可以做到。這樣減少了很多不必要的和數(shù)據(jù)庫(kù)主機(jī)之間的網(wǎng)絡(luò)流量。
使用情況
雖然在2006年時(shí)Subversion的使用族群仍然遠(yuǎn)少于傳統(tǒng)的CVS,但已經(jīng)有許多開放原碼團(tuán)體決定將CVS轉(zhuǎn)換為Subversion。已經(jīng)轉(zhuǎn)換使用Subversion的包括了FreeBSD、ApacheSoftware Foundation、KDE、GNOME、GCC、Python、Samba、Mono以及許多團(tuán)體。有許多的團(tuán)隊(duì)換用Subversion是因?yàn)門rac所提供的專案管理環(huán)境。除此之外,一些自由軟件開發(fā)的協(xié)作網(wǎng)如SourceForge除了提供CVS外,現(xiàn)在也提供專案開發(fā)者使用Subversion作為原碼管理系統(tǒng),JavaForge、GoogleCode以及BountySource則以Subversion作為官方的原碼管理系統(tǒng)。那么Subversion1.6.11發(fā)布后和以前的版本有什么改進(jìn)的地方呢?請(qǐng)看下文;
該版本改進(jìn)內(nèi)容:
User-visiblechanges:
◆fixforrepositoriesmountedviaNFS(issue#3501)
◆enableTCPkeep-alivesinSVNserve(r880552)
◆tightenrestrictionsonrevpropsfor'SVNadminverify'(r904594)
◆makera_serfgivebetterout-of-dateinformation(issue#3561)
◆improveerrormessageuponconnectionfailurewithSVN+ssh://(r922516)
◆allow'SVNlog'onanuncommittedcopy/movedestination(r901752)
◆make'SVNadminhotcopy'copythefsfsconfigfile(r905303)
◆mergeinfoimprovementswithnon-inheritablemergeinfo(issue#3573)
◆makemergeinfoqueriesnotrequireaccesstothereporoot(issue#3242)
◆updateURLstoreferthethenewapache.orgrepository(r904301,-94)
◆updaterelativeexternalsduringaswitch(issue#3390)
◆fix'merge--reintegrate'withself-referentialmergeinfo(r892050,-85)
◆improvewc-ngworkingcopydetection(r929382)
◆improvehandlingofmergeinfowhenusingserf(r880461)
◆fixed:'SVNlookplist--revprop'with'-tTXN_NAME'(r917640,-8211)
◆fixed:fileexternalfromURLcannotoverwriteexistingitem(issue#3552)
◆fixed:potentialmemoryerrorin'SVNstatus'(r923674,-9)
◆fixed:mergerecordsmergeinfofromnaturalhistorygaps(issue#3432)
◆fixed:theoreticalpossibilityofDBcorruption(r926151,-67)
Developer-visiblechanges:
◆disablechecksforwc-ngworkingcopieswhenrunningthetestsuite
◆onWindows,don'tignoremoveoperationerrorcodes(r896915)
◆moreprecisereportingoferrorsoccuringwithsqliteinit(r927323,-8)
◆ensurerangelistAPIsarecommutative(r923389,-91)
【編輯推薦】