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