第 2 章 基本概念

目录

2.1. 版本库
2.2. 版本模型
2.2.1. 文件共享的问题
2.2.2. 锁定-修改-解锁 方案
2.2.3. 复制-修改-合并 方案
2.2.4. Subversion 怎么做?
2.3. Subversion 实战
2.3.1. 工作副本
2.3.2. 修订版本
2.3.3. 工作副本怎样跟踪版本库
2.4. 摘要

本章修改自《使用 Subversion 进行版本管理》的相同章节,它的在线版本位于: http://svnbook.red-bean.com/

这一章是对 Subversion 一个简短随意的介绍,如果你对版本控制很陌生,这一章节完全是为你准备的,我们从讨论基本概念开始,深入理解 Subversion 的思想,然后展示许多简单的实例。

尽管我们的例子展示了人们如何分享程序源代码,仍然要记住 Subversion 可以控制所有类型的文件-它并没有限制只为程序员工作。

2.1. 版本库

Subversion 是一种集中的分享信息的系统,它的核心是版本库,储存所有的数据,版本库按照文件树形式储存数据-包括文件和目录,任意数量的客户端可以连接到版本库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。

图 2.1. 一个典型的客户/服务器系统

一个典型的客户/服务器系统

所以为什么这很有趣呢?讲了这么多,让人感觉这是一种普通的文件服务器,但实际上,版本库另一种文件服务器,而不是你常见的那一种。最特别的是 Subversion 会记录每一次的更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。

当一个客户端从版本库读取数据时,通常只会看到最新的版本,但是客户端也可以去看以前的任何一个版本。举个例子,一个客户端可以问这样的历史问题,“上个星期三的目录是怎样的?”,或者“是谁最后一个修改了这个文件,改动了什么?”,这些是任何版本控制系统的核心问题: 系统是设计用来记录和跟踪每次修改的。