4.Subversion 版本库的定义

Posted on Posted in 6.版本库管理

Subversion 版本库的定义

在进入版本库管理这块宽泛的主题之前,让我们进一步确定一下版本库的定义,它是怎样工作的?让人有什么感觉?它希望茶是热的还是冰的,加糖或柠檬吗?作为一名管理员,你应该既能够从物理具体细节的视角-版本库如何响应一个非Subversion的工具,也能够从逻辑视角-数据在版本库中如何展示。

通过典型的文件浏览器应用程序或命令行为基础的文件系统浏览工具查看,Subversion版本库只是另一个目录。也有一些子目录下包含可读的数据文件,也有一些子目录包含不可读的数据文件。Subversion设计的其他地方,模块化被认真考虑,等级化的组织可以减少混乱,所以脱离细节粗略看一下典型的版本库可以有效地揭示版本库的基本组件。

$ ls repos
conf/  dav/  db/  format  hooks/  locks/  README.txt

     

下面是一个你看到列出目录的快速总揽。(不要因为术语陷入困境—这些组件的细节介绍可以从本章或其他章节找到。)

  • conf

  • 一个存储版本库配置文件的目录。

  • dav

  • 提供给Apache和mod_dav_svn的目录,让它们存储自己的数据。

  • db

  • 你的版本化数据的数据存储方式。

  • format

  • 包含了一个用来表示版本库布局版本号整数的文件。

  • hooks

  • 一个存储钩子脚本模版的目录(还有钩子脚本本身, 如果你安装了的话)。

  • locks

  • 一个存储Subversion版本库锁定文件的目录,被用来追踪对版本库的访问。

  • README.txt

  • 这个文件只是用来告诉它的阅读者,他现在看的是 Subversion 的版本库。

当然,当通过Subversion库访问时,这些平常的文件和目录立刻变成了虚拟文件系统的实现,由自定义的事件触发完成。这个文件系统的目录和文件都有自己的概念,与真实的文件系统(例如NTFS、FAT32、ext3等等)很类似,但是也有特别的地方—它在修订版本间锁定目录和文件,保持你的所有修改可以永远访问的,这是你的所有版本化数据存放的地方。