本手册旨在描述 Subversion 1.1。如果您正在运行较新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并参考适合您 Subversion 版本的书籍版本。

第 2 章。基本概念

目录

版本库
版本控制模型
文件共享问题
锁定-修改-解锁解决方案
复制-修改-合并解决方案
Subversion 实践
工作副本
版本
工作副本如何跟踪版本库
混合版本限制
总结

本章是关于 Subversion 的简短、非正式的介绍。如果您是版本控制新手,本章绝对适合您。我们将从讨论一般的版本控制概念开始,逐步深入了解 Subversion 背后的特定理念,并展示一些简单的 Subversion 使用示例。

虽然本章中的示例展示了人们共享程序源代码集合,但请记住 Subversion 可以管理任何类型的文件集合,它不局限于帮助计算机程序员。

版本库

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

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

A typical client/server system

为什么这很有趣?到目前为止,这听起来像是对典型文件服务器的定义。事实上,版本库 一种文件服务器,但它不是您通常见到的那种。Subversion 版本库的特别之处在于它 会记录所有写入它的更改:对每个文件的每个更改,甚至对目录树本身的更改,例如文件的添加、删除和重新排列。

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