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