特性 | Berkeley DB | FSFS |
---|---|---|
對(duì)操作中斷的敏感 | 很敏感;系統(tǒng)崩潰或者權(quán)限問(wèn)題會(huì)導(dǎo)致數(shù)據(jù)庫(kù)“塞住”,需要定期進(jìn)行恢復(fù)。 | 不敏感 |
可只讀加載 | 不能 | 可以 |
存儲(chǔ)平臺(tái)無(wú)關(guān) | 不能 | 可以 |
可從網(wǎng)絡(luò)文件系統(tǒng)訪問(wèn) | 不能 | 可以 |
版本庫(kù)大小 | 稍大 | 稍小 |
擴(kuò)展性:修訂版本樹數(shù)量 | 無(wú)限制 | 某些本地文件系統(tǒng)在處理單一目錄包含上千個(gè)條目時(shí)會(huì)出現(xiàn)問(wèn)題。 |
擴(kuò)展性:文件較多的目錄 | 較慢 | 較慢 |
檢出新代碼的速度 | 較快 | 可以 |
大量提交的速度 | 較慢,但時(shí)間被分配在整個(gè)提交操作中 | 較快,但后較長(zhǎng)的延時(shí)可能會(huì)導(dǎo)致客戶端操作超時(shí) |
組訪問(wèn)權(quán)處理 | 對(duì)于用戶的 umask 設(shè)置十分敏感,好只由一個(gè)用戶訪問(wèn)。 | 對(duì) umask 設(shè)置不敏感 |
功能成熟時(shí)間 | 2001 年 | 2004 年 |
確定了具體的數(shù)據(jù)存儲(chǔ)類型,只要在命令行當(dāng)中執(zhí)行 svnadmin 命令可以創(chuàng)建一個(gè) Subversion 版本庫(kù),命令如下
# 創(chuàng)建文件夾
$ mkdir /etc/svn/
$ mkdir /etc/svn/repos
# 運(yùn)行創(chuàng)建版本庫(kù)的命令,指定數(shù)據(jù)存儲(chǔ)為 FSFS,如果要指定為 Berkeley DB,則將 fsfs 替換為 bdb
$ svnadmin create --fs-type fsfs /etc/svn/repos
如果一切正常,命令執(zhí)行后不會(huì)有任何反饋信息而迅速返回,這樣,一個(gè)新的版本庫(kù)被創(chuàng)建出來(lái)了。我們來(lái)查看一下生成的版本庫(kù)結(jié)構(gòu):
$ ls -l /etc/svn/repos
總用量 56
drwxrwxr-x 2 robert robert 4096 8月 27 17:27 conf
drwxrwxr-x 2 robert robert 4096 8月 27 17:27 dav
drwxrwsr-x 5 robert robert 4096 8月 27 17:27 db
-r--r--r-- 1 robert robert 2 8月 27 17:27 format
drwxrwxr-x 2 robert robert 4096 8月 27 17:27 hooks
drwxrwxr-x 2 robert robert 4096 8月 27 17:27 locks
-rw-rw-r-- 1 robert robert 229 8月 27 17:27 README.txt
其中,conf 目錄下存放了版本庫(kù)的配置文件,包括用戶訪問(wèn)控制和權(quán)限控制等內(nèi)容,文件本身的注釋說(shuō)明十分詳細(xì),讀者可以根據(jù)注釋自行配置;dav 目錄是提供給 Apache 相關(guān)模塊的目錄,目前為空;db 目錄下存放著 Subversion 所要管理的所有受版本控制的數(shù)據(jù),不同的存儲(chǔ)方式(Berkeley DB 或者 FSFS)下有著不同的目錄結(jié)構(gòu),不過(guò)我們一般不用直接修改和查看這個(gè)目錄下的內(nèi)容,Subversion 的命令可以安全的操作這個(gè)目錄;另外,hooks 目錄存放著鉤子腳本及其模版(一種版本庫(kù)事件觸發(fā)程序),locks 目錄存放著 Subversion 版本庫(kù)鎖定數(shù)據(jù),format 文件記錄了版本庫(kù)的布局版本號(hào)。