该文是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. 在eclipse上配置tomcat

    Eclipse中Tomcat的配置及简单例子 Eclipse中Tomcat的配置是很简单的一个工作,作为一名刚刚起步的编程菜鸟,我将这个配置的过程和简单的例子写下来记录,也希望能给像我怎样的新手一些帮 ...

  2. 怎么成为PHP专家

    当阅读各种和PHP相关的博客.Quora问题.Google+社区.资讯和杂 志的时候,经常会注意到在技术上出现两极分化的现象.问题均围绕在“我如何连接到一个MySQL数据库?”,或者是“我如何使得邮件 ...

  3. Java ActiveMQ队列模式案例

    创建Eclipse项目并运行 创建java project:ActiveMQ-5.14,新建lib文件夹 打开apache-activemq-5.14.0-bin\apache-activemq-5. ...

  4. Windows内核之线程简单介绍

    1 线程定义 <1> 内核对象,操作系统用它来对线程实施管理.内核对象也是系统用来存放线程统计信息的地方 <2>还有一个是线程堆栈.它用于维护线程在运行代码时须要的全部函数參数 ...

  5. TestNG+Maven+IDEA环境搭建

    TestNG+Maven+IDEA环境搭建 前言: 主要进行TestNG测试环境的搭建 所需环境: 1.IDEA UItimate 2.JDK 3.Maven 一.创建工程 File –>new ...

  6. 从webstorm转vscode,来一个vscode的教程和心得总结

    背景 在公司跑代码,每天卡的吐血,感觉生命都被浪费了. 再在摧残了一段时间,天天想摔电脑以后,被同事安利vscode, 那就开始搞起来 安装 这个我真的不用说了吧 插件 快捷键 shift + alt ...

  7. C#和Java中字符串的异同

    字符串 在底层上跟C#类似,每个字符串的实例都不可修改.当修改字符串变量时,是将变量指向新的字符串实例,而不是修改原本的实例.Java中也有字符串池机制. 注意:使用 == 运算符比较字符串时,跟C# ...

  8. Appstore 提交Ipad 和Iphone版

  9. AbstractQueuedSynchronizer源码分析

    AbstractQueuedSynchronizer源码分析 前提 AQS(java.util.concurrent.locks.AbstractQueuedSynchronizer)是并发编程大师D ...

  10. C语言-求最大值

    #include<stdio.h> void main() {int a,b,c,d; scanf("%d,%d,%d",&a,&b,&c); ...