第 2 章 基本概念

目录

资料库
版本模型
文件共享的难题
解决方案:锁定-修改-解锁
解决方案:拷贝-修改-合并
Subversion实战
工作副本
修订版(Revision)
工作副本如何跟踪资料库
混合修订版的局限
总结

本章是对Subversion的一个简短介绍。如果你是版本控制新手,那么本章正适合你读。我们从讨论版本控制的一般概念开始,然后深入到Subversion的一些特有想法,并演示一些应用Subversion的简单例子。

虽然本章的例子是演示如何共享程序源码的,但请记住,Subversion可以管理任何种类的文件集--它不仅仅对计算机程序员有用。

资料库

Subversion是一个集中式信息共享系统。它的核心是作为数据存储中心的资料库。资料库以文件系统树--典型的文件和目录层次系统--的形式来存储信息。任意多个客户端都可连接到资料库,然后读写这些文件。通过写入数据,客户端可以共享信息给其他客户端,通过读出数据,客户端可以从别人那里得到信息。图 2.1 “一个典型的客户机/服务器 系统” 展示了这些:

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

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

哪为什么要这么做?到目前为止,这听起来就像一个典型的文件服务器的定义。确实,资料库一种文件服务器,但不是通常的那种。Subversion资料库的特殊之处在于它会记住你对它所做的所有修改:对每一个文件的每一处改变,以及对目录树本身的改变,比如增加,删除,和重新安排文件和目录。

当一个客户端从资料库读文件时,通常只看到最新版的文件系统树。但是客户端也可以查看文件系统以前的状态。例如:客户端能问这样的历史性问题:“上星期三这个目录包含那些文件?”或者“谁是这个文件的上一个修改者,他们做了什么改动?”这类问题是所有版本控制系统的核心问题:系统要被设计为可以记录和追溯数据随时间的变化。