本手册是为描述 Subversion 1.4 版本而编写的。如果您正在运行更新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您的 Subversion 版本的书籍。

版本库

Subversion 是一个用于共享信息的集中式系统。它的核心是一个版本库,它是数据的中央存储库。版本库以 文件系统树 的形式存储信息,文件系统树是一个典型的文件和目录层次结构。任意数量的 客户端 连接到版本库,然后读取或写入这些文件。通过写入数据,客户端使信息对其他人可用;通过读取数据,客户端从其他人那里接收信息。 图 1.1,“典型的客户端/服务器系统” 说明了这一点。

图 1.1 典型的客户端/服务器系统

A typical client/server system

那么,为什么这很有趣?到目前为止,这听起来像是对典型文件服务器的定义。实际上,版本库 确实是 一种文件服务器,但它与众不同。使 Subversion 版本库与众不同的是 它会记录写入它的所有更改:对每个文件的每次更改,甚至对目录树本身的更改,例如文件和目录的添加、删除和重新排列。

当客户端从版本库读取数据时,它通常只看到文件系统树的最新版本。但客户端还可以查看文件系统树的 先前 状态。例如,客户端可以询问诸如“上周三这个目录包含了什么内容?”或“谁是最后修改此文件的人,他做了哪些修改?”这类问题。这些问题是任何 版本控制系统的核心问题:这些系统旨在跟踪数据随时间推移的更改。