什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅
特定版本修订情况的系统。在本书所展示的例子中,我们仅对保存着软件源代码的文本文件
作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。
如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版
本(这或许是你非常渴望拥有的功能)。采用版本控制系统(VCS)是个明智的选择。有了
它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状
态。你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而导致出现怪异问题,
又是谁在何时报告了某个功能缺陷等等。使用版本控制系统通常还意味着,就算你乱来一气
把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。但额外增加的工
作量却微乎其微。
1.1.1 本地版本控制系统
许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以
示区别。这么做唯一的好处就是简单。不过坏处也不少:有时候会混淆所在的工作目录,一
旦弄错文件丢了数据就没法撤销恢复。
为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种
简单的数据库来记录文件的历次更新差异(见图1.1)。
其中最流行的一种叫做rcs,现今许多计算机系统上都还看得到它的踪影。甚至在流行的
Mac OS X 系统上安装了开发者工具包之后,也可以使用rcs 命令。它的工作原理基本上就
是保存并管理文件补丁(patch)。文件补丁是一种特定格式的文本文件,记录着对应文件
修订前后的内容变化。所以,根据每次修订后的补丁,rcs 可以通过不断打补丁,计算出各
个版本的文件内容。