在开发人员开发软件、系统的时候,经常会有开发人员叫运维人员更新新的版本,那么你们知道更新新的版本,是整个目录更新,还是某一部分更新?那么旧的版本是要怎么处理呢?整个目录删除了还是保存在另一个目录呢?一般来说,我们都不会把旧版本删除了,会在另外的目录保存下来,以防新版本有问题时候能够回退。
许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的好处就是简单。不过坏处也不少,有时候会混淆所在的工作目录,一旦弄错文件丢了数据就没法撤销恢复。
为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。
本地版本控制系统
大体上本地版本控制系统的原理,可以使用下面的一张原理图来体现,在本地服务器中,对一个文件使用不同的版本进行标识。
在此种模式当中,最流行的应该是一种叫rcs的架构,现今许多计算机系统上都还看得到它的踪影。甚至在流行的 Mac OS X 系统上安装了开发者工具包之后,也可以使用 rcs 命令。它的工作原理基本上就是保存并管理文件补丁(patch)。文件补丁是一种特定格式的文本文件,记录着对应文件修订前后的内容变化。所以,根据每次修订后的补丁,rcs 可以通过不断打补丁,计算出各个版本的文件内容。
版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。每一次文件的改变,文件的版本