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后生成的版本号;即使删除掉部分版本也不会影响版本库的读取和显示;但是基础版本丢失会使版本库无法访问;
posted @ 2015-12-24 17:20  我只吃大碗  阅读(9613)  评论(0编辑  收藏  举报