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后生成的版本号;即使删除掉部分版本也不会影响版本库的读取和显示;但是基础版本丢失会使版本库无法访问;

你可能感兴趣的:(SVN)