### 第2章基本概念 **目录** 这一章是对Subversion一个简短和随意的介绍,如果你对版本控制很陌生,这一章节完全为你准备的,我们从讨论基本概念开始,深入理解Subversion的思想,然后展示许多简单的实例。 尽管我们的例子展示了人们如何分享程序源代码,仍然要记住Subversion可以控制所有类型的文件―它并没有限制在只为程序员工作。 ### 版本库 Subversion是一种集中的分享信息的系统,它的核心是版本库,它储存所有的数据,版本库按照*文件树*形式储存数据―包括文件和目录。任意数量的*客户端*可以连接到版本库,读写这些文件。通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。[图2.1 “一个典型的客户/服务器系统”]描述了这种关系: **图2.1.一个典型的客户/服务器系统** ![一个典型的客户/服务器系统](https://box.kancloud.cn/2016-08-21_57b8a33382c86.png) 所以为什么这很有趣呢?讲了这么多,让人感觉这是一种普通的文件服务器,但实际上,版本库*是*另一种文件服务器,而不是你常见的那一种。最特别的是Subversion*会记录每一次的更改*,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。 当一个客户端从版本库读取数据时,通常只会看到最新的版本,但是客户端也可以去看*以前*的任何一个版本。举个例子,一个客户端可以发出这样的历史问题“上个星期三的目录是怎样的?”或是“谁最后一个更改了这个文件,更改了什么?”,这些是每一种*版本控制系统*的核心问题:系统是设计来记录和跟踪每一次改动的。