本文档尚未完善,内容可能会随时更改,可能不准确地描述 Apache™ Subversion® 软件的任何已发布版本。将此页面添加为书签或以其他方式向他人推荐可能不是一个明智的选择。请访问 https://svnbook.subversion.org.cn/ 获取本书的稳定版本。
在深入探讨仓库管理的更广泛主题之前,让我们进一步定义什么是仓库。它看起来像什么?它感觉如何?它喜欢喝热茶还是冰茶,加糖还是加柠檬?作为管理员,您需要从字面上的操作系统级别角度(即仓库在非 Subversion 工具方面的表现)和逻辑角度(即处理仓库 内部的数据表示方式)来理解仓库的构成。
通过典型的文件浏览器应用程序(如 Windows 资源管理器)或基于命令行的文件系统导航工具,Subversion 仓库看起来只是一个充满了各种东西的目录。它包含一些包含人类可读配置文件的子目录,一些包含不太人类可读的数据文件的子目录,等等。与 Subversion 设计的其他领域一样,模块化被高度重视,层次结构组织优先于混乱。因此,从基础的角度来看,对典型仓库的浅层浏览足以揭示仓库的基本组成部分。
$ ls repos conf/ db/ format hooks/ locks/ README.txt
以下是对此目录列表中所见内容的快速概述。(不要被术语所困扰——这些组件的详细内容在本节和其他章节中都有介绍。)
此目录用于存放配置文件。
此目录包含所有版本化数据的存储区。[49]
此文件描述了仓库的内部组织方案。(事实证明,db/
子目录有时也会包含一个 format
文件,该文件仅描述该子目录的内容,不应与该文件混淆。)
此目录包含挂钩脚本模板和挂钩脚本(如果有已安装的脚本)。
Subversion 使用此目录来存放仓库锁文件,用于管理对仓库的并发访问。
这是一个简短的文本文件,仅包含一个通知,告知读者他们正在查看的目录是一个 Subversion 仓库。
注意 | |
---|---|
在 Subversion 1.5 之前,磁盘上的仓库结构也始终包含一个 |
当然,当通过 Subversion 库访问时,这个原本不起眼的集合文件和目录突然变成了一个虚拟版本化文件系统的实现,包括可定制的事件触发器。这个文件系统有自己的目录和文件概念,与真实文件系统(如 NTFS、FAT32、ext3 等)的概念非常相似。但这是一个特殊的文件系统——它将这些目录和文件挂接到修订版上,将您所做的一切更改安全地存储起来,并永远可供访问。这就是所有版本化数据所处的位置。