本手册的编写是为了描述 Subversion 1.2。如果你正在运行更新版本的 Subversion,我们强烈建议你访问 https://svnbooks.subversion.org.cn/ 并查阅适用于你 Subversion 版本的版本。
目录
本章简要介绍了 Subversion,内容轻松易懂。如果你不熟悉版本控制,本章绝对适合你。我们从讨论一般的版本控制概念开始,逐步介绍 Subversion 背后的具体理念,并展示一些简单的 Subversion 使用示例。
尽管本章的示例展示了人们共享程序源代码集合,但请记住,Subversion 可以管理任何类型的文件集合——它不局限于帮助计算机程序员。
Subversion 是一个用于共享信息的集中式系统。它的核心是版本库,它是一个数据的中心存储库。版本库以 文件系统树 的形式存储信息,文件系统树是一个典型的文件和目录层次结构。任意数量的 客户端 连接到版本库,然后读写这些文件。通过写入数据,客户端使信息对其他人可用;通过读取数据,客户端从其他人接收信息。 图 2.1. “一个典型的客户端/服务器系统” 说明了这一点。
那么这有什么有趣的地方呢?到目前为止,这听起来像是对典型文件服务器的定义。的确,版本库 是 一种文件服务器,但它并非你常见的类型。使 Subversion 版本库特别的是,它 记住 写入它的每一个更改:每一个文件的每一个更改,甚至目录树本身的更改,例如文件和目录的添加、删除和重新排列。
当客户端从版本库读取数据时,它通常只看到文件系统树的最新版本。但客户端还可以查看文件系统树的 先前 状态。例如,客户端可以询问诸如“上周三这个目录包含什么?”或“最后修改此文件的人是谁,他做了哪些修改?”之类的问题。这些都是任何 版本控制系统的核心问题:版本控制系统旨在记录和跟踪随时间推移的数据变化。