情報獲悉Subversion1.6.11發(fā)布,敬請關注
據(jù)悉Subversion1.6.11發(fā)布已經(jīng)揭曉,共所周知現(xiàn)在互聯(lián)網(wǎng)上免費的版本控制服務多基于Subversion,因為它是一個版本控制系統(tǒng),相對于的RCS、CVS,采用了分支管理系統(tǒng),它的設計目標就是取代CVS。下面先看一下它和CVS的比較:
1.對重命名、刪除文件的支持
CVS:不支持本地文件重命名提交
刪除分remove和erase兩種前者把本地和庫中文件都刪除后者只是刪除本地文件
不能刪除文件夾
SVN:支持文件重命名提交系統(tǒng)會提示刪除舊文件,創(chuàng)建新文件
刪除本地文件提交庫中文件也被刪除
2.對中文路徑名的支持
CVS:支持的比較好
SVN:要將權限控制文件保存為SVN支持的UTF-8格式
3.本地文件與庫的對應關系
CVS:可以多對多
SVN:一個庫可以有多個工作目錄但一個工作目錄只能對應一個庫雖然可以更改庫位置但是要求很嚴格
4.庫中文件存放方式
CVS:完全用戶可見方式與客戶端文件夾結(jié)構完全一直(CVS生成文件除外)
SVN:與vss相似,看不到文件真正的內(nèi)容
5.用戶、權限管理
CVS:管理員很難清楚的知道一個項目到底有多少個用戶各用戶的權限和密碼是什么只能用分組的方式管理用戶而且密碼和權限還是不清晰
SVN:查看、修改配置文件即可
6.權限
CVS:有read、write、creat、none這四種權限,任何人不能刪除文件夾。
SVN:只有read、write、none三種權限creat和delete權限好象和write是捆綁在一起的
Subversion1.6.11發(fā)布體現(xiàn)了Subversion的快速發(fā)展,通過與ConcurrentVersionsSystem(CVS)的比較我們可以看到它的優(yōu)勢。
優(yōu)于CVS之處
原子提交。一次提交不管是單個還是多個文件,都是作為一個整體提交的。在這當中發(fā)生的意外例,如傳輸中斷,不會引起數(shù)據(jù)庫的不完整和數(shù)據(jù)損壞。重命名、復制、刪除文件等動作都保存在版本歷史記錄當中。對于二進制文件,使用了節(jié)省空間的保存方法。(簡單的理解,就是只保存和上一版本不同之處)目錄也有版本歷史。整個目錄樹可以被移動或者復制,操作很簡單,而且能夠保留全部版本記錄。分支的開銷非常小。優(yōu)化過的數(shù)據(jù)庫訪問,使得一些操作不必訪問數(shù)據(jù)庫就可以做到。這樣減少了很多不必要的和數(shù)據(jù)庫主機之間的網(wǎng)絡流量。
使用情況
雖然在2006年時Subversion的使用族群仍然遠少于傳統(tǒng)的CVS,但已經(jīng)有許多開放原碼團體決定將CVS轉(zhuǎn)換為Subversion。已經(jīng)轉(zhuǎn)換使用Subversion的包括了FreeBSD、ApacheSoftware Foundation、KDE、GNOME、GCC、Python、Samba、Mono以及許多團體。有許多的團隊換用Subversion是因為Trac所提供的專案管理環(huán)境。除此之外,一些自由軟件開發(fā)的協(xié)作網(wǎng)如SourceForge除了提供CVS外,現(xiàn)在也提供專案開發(fā)者使用Subversion作為原碼管理系統(tǒng),JavaForge、GoogleCode以及BountySource則以Subversion作為官方的原碼管理系統(tǒng)。那么Subversion1.6.11發(fā)布后和以前的版本有什么改進的地方呢?請看下文;
該版本改進內(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)
【編輯推薦】