第 2 章 基本概念

目录

版本库
版本模型
文件共享的问题
锁定-修改-解锁 方案
拷贝-修改-合并 方案
Subversion实战
工作拷贝
修订版本
工作拷贝怎样追踪版本库
修订版本混合的限制
摘要

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

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

版本库

Subversion是一种集中的分享信息的系统,它的核心是版本库,它储存所有的数据,版本库按照文件树形式储存数据—包括文件和目录。任意数量的客户端可以连接到版本库,读写这些文件。通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。图 2.1 “一个典型的客户/服务器系统”描述了这种关系:

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

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

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

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