本章是 Subversion 书籍中相同章节的略微修改版本。Subversion 书籍的在线版本可在此处获取: http://svnbook.subversion.org.cn/ 。
本章是对 Subversion 的简短、随意的介绍。如果您是版本控制新手,那么本章绝对适合您。我们首先讨论一般的版本控制概念,逐步深入了解 Subversion 背后的具体思想,并展示一些 Subversion 在使用中的简单示例。
即使本章中的示例展示了人们共享程序源代码集合,请记住 Subversion 可以管理任何类型的文件集合 - 它不限于帮助计算机程序员。
Subversion 是一个用于共享信息的集中式系统。它的核心是一个版本库,它是数据的中央存储库。版本库以文件系统树的形式存储信息 - 这是典型的文件和目录层次结构。任何数量的客户端连接到版本库,然后读取或写入这些文件。通过写入数据,客户端使信息可供他人使用;通过读取数据,客户端从他人那里接收信息。
那么为什么这很有趣呢?到目前为止,这听起来像是典型文件服务器的定义。确实,版本库是一种文件服务器,但它不是您通常的那种。Subversion 版本库的特殊之处在于,它记住了写入它的每一次更改:对每个文件的每一次更改,甚至对目录树本身的更改,例如文件和目录的添加、删除和重新排列。
当客户端从版本库读取数据时,它通常只看到文件系统树的最新版本。但是客户端也能够查看文件系统的以前状态。例如,客户端可以提出历史性问题,例如“上周三这个目录包含什么?”,或者“谁是最后一个更改此文件的人,他们做了哪些更改?”这些是任何版本控制系统的核心问题:旨在记录和跟踪数据随时间变化的系统。