该文是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版本库目录结构的更多相关文章

  1. linux 创建svn版本库,并在svn上配置checkstyle做代码风格检查

    一.创建SVN版本库 1.安装svn服务器 yum install subversion 2.查看版本 svnserve --version 3.建立SVN版本库目录(即你的SVN服务器里面的文件存放 ...

  2. SVN版本库(访问权限)配置实例笔记

    http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. ...

  3. svn 版本库的创建和配置

    1.创建SVN版本库 mkdir trunk svnadmin create /root/trunk/svntest #这里是路径和即将创建的版本库名称 2.配置svn cd /root/trunk/ ...

  4. 工作随笔——使用svnsync实时备份SVN版本库

    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...

  5. 用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器

    如用svnsync 同步备份两台机器的svn .(就以linux服务器到windows服务器为例子) 要同步的项目名称:source_svn svn 版本库1 .4 以上 源目录:           ...

  6. linux上svn版本库创建小记

    [新建svn仓库] 先创建一个文件夹mkdir /opt/svn/wechat;   然后创建svn版本库    svnadmin create /opt/svn/wechat;   [创建用户组权限 ...

  7. Linux 搭建svn版本库

    一.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端 如果后面执行“svnadmin create /usr/local/svn/sunny”提示 ...

  8. 批量自动更新SVN版本库 - Windows

    开发过程中每天都要从SVN代码库里一个一个的update各个项目代码,不仅效率实在是低,也不符合程序员的"懒"精神,由于是在Windows环境做开发,自然就想到了使用bat来实现自 ...

  9. SVN版本库备份和恢复

    1.版本库备份 1.1.svnadmin dump方式备份 此方法借助的是Subversion官网推荐的svnadmin dump备份方式,它的优点是比较灵活,既可以进行全量备份又可以进行增量备份,并 ...

随机推荐

  1. JVM OQL查询语言

    OQL查询语言 SELECT Clause The SELECT clause determines what to extract from the heap dump. To display ob ...

  2. iOS:CocoaPods详解

    原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 一.什么是CocoaPods 1.为什么需要CocoaPods 在进行iOS ...

  3. 纯C实现面向对象之接口编程

    创建如下文件目录 : Shape.h #include <stdlib.h> //接口 #ifndef Interface #define Interface struct #endif ...

  4. GLSL使用FBO实现MRT(Multiple Render Targets)绘制到多张纹理 【转】

    项目的程序里设计需要将某一帧渲染出来的画面拆成三通道单色图像存到三张纹理里面.要绘制到纹理里,自然就想到FBO了.但是一次要输出多张纹理,这个还没接触过.一阵网上搜索过后,终于了解到了MRT(多重渲染 ...

  5. http://blog.sina.com.cn/s/blog_628cc2b70102v115.html

    http://blog.sina.com.cn/s/blog_628cc2b70102v115.html

  6. Python Xpath 提取html整个元素(标签与内容)

    提取html某标签中文字时,文字中含有:“<sub>2</sub>O<sub>5</sub>”,导致提取的文字不符合预期. 解决方法: #coding= ...

  7. angular directive 深入理解

    由于业务的需要,最近angular 的diretive 研究的比较多,有和同事一起共同协作开发scada的项目, 对directive 有了进一步更深的理解. 感觉才开始真正理解了这句话的意思: In ...

  8. Java 关于容器集合等数据结构详情图解,一目了然

    建议把图片下载下来保存之,网页展示不开... watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3NtX3F6/font/5a6L5L2T/fontsize/ ...

  9. Eclipse重新导入Tomcat启动出错选择不了文件夹

    如果你已经把tomcat配置进了Eclipse,却因为某些原因delete了服务器,再想导入同版本的服务器就有可能会报Could not publish to the server.错误,并且添加服务 ...

  10. 【CI】系列二:Ubuntu环境虚拟机安装及配置

    好了,做好了初步计划之后,如果可行性没问题,就可以开始实践了. 准备前提:VirtualBox.ubunut镜像 如果没有,可以通过如下地址下载,安装过程此处不做描述. VirtualBox 4.3. ...