svn版本庫目錄結構

 

 
該文是svn源代碼分析系列文章服務端架構中的一篇,主要描述svn服務端版本庫數據存儲目錄結構,而且對這些文件以及目錄的做用進行簡單分析。使用「svnmadin create」命令建立初始化版本庫後,使用「tree」命令打印出沒有通過任何修改的原始版本庫目錄。
$ svnadmin /svnrepos/morepos
$ tree /svnrepos/morepos -p
morepos
|-- [-rw-r--r--]  README.txt
|-- [drwxr-xr-x]  conf
|   |-- [-rw-r--r--]  authz
|   |-- [-rw-r--r--]  passwd
|   `-- [-rw-r--r--]  svnserve.conf
|-- [drwxr-sr-x]  db
|   |-- [-rw-r--r--]  current
|   |-- [-r--r--r--]  format
|   |-- [-rw-r--r--]  fs-type
|   |-- [-rw-r--r--]  fsfs.conf
|   |-- [-rw-r--r--]  min-unpacked-rev
|   |-- [drwxr-sr-x]  revprops
|   |   `-- [drwxr-sr-x]  0
|   |       `-- [-r--r--r--]  0
|   |-- [drwxr-sr-x]  revs
|   |   `-- [drwxr-sr-x]  0
|   |       `-- [-r--r--r--]  0
|   |-- [drwxr-sr-x]  transactions
|   |-- [-rw-r--r--]  txn-current
|   |-- [-rw-r--r--]  txn-current-lock
|   |-- [drwxr-sr-x]  txn-protorevs
|   |-- [-rw-r--r--]  uuid
|   `-- [-rw-r--r--]  write-lock
|-- [-r--r--r--]  format
|-- [drwxr-xr-x]  hooks
|   |-- [-rw-r--r--]  post-commit.tmpl
|   |-- [-rw-r--r--]  post-lock.tmpl
|   |-- [-rw-r--r--]  post-revprop-change.tmpl
|   |-- [-rw-r--r--]  post-unlock.tmpl
|   |-- [-rw-r--r--]  pre-commit.tmpl
|   |-- [-rw-r--r--]  pre-lock.tmpl
|   |-- [-rw-r--r--]  pre-revprop-change.tmpl
|   |-- [-rw-r--r--]  pre-unlock.tmpl
|   `-- [-rw-r--r--]  start-commit.tmpl
`-- [drwxr-xr-x]  locks
    |-- [-rw-r--r--]  db-logs.lock
    `-- [-rw-r--r--]  db.lock

10 directories, 27 files

路徑 類型 做用
conf 目錄 存放版本庫所用配置文件的目錄
dav 目錄 供mod_dav_svn使用
db 目錄 版本數據存儲目錄
db/fs-type 文件 版本庫數據真實存儲格式,SVN有fsfs和bdb兩種存儲格式
db/revprops 目錄 記錄版本屬性
db/revs 目錄 版本庫數據存儲真實目錄
db/uuid 文件 存儲版本庫惟一標識號,參考《svn版本庫標識uuid簡述》
db/txn-current 文件 記錄當前事務
format 文件 存儲一個整數的文件,此整數表明庫層次結構版本
hooks 目錄 存放版本庫勾子目錄
locks 目錄 存儲庫鎖目錄,用來跟蹤庫的訪問者
其中revs下面是以目錄組織的版本結構,每1000個版本組成一個目錄,每一個版本自成一個文件,文件名即爲commit後生成的版本號;即便刪除掉部分版本也不會影響版本庫的讀取和顯示;可是基礎版本丟失會使版本庫沒法訪問;
相關文章
相關標籤/搜索