1. 几个基本概念
SCM:软件配置管理,用来追踪和控制软件的变化的任务。
SCI:软件配置项,软件中发生变化的基本单元(例如:文件)。
Baseline:基线,软件持续变化过程中的“稳定时刻”(例如:对外发布的版本)
CMDB:配置管理数据库,存储软件的各配置项随时间发生变化的信息+基线。
Version:版本,为软件的任一特定时刻(Monment)的形态指派一个唯一的
编号,作为“身份标识”。
2. 版本控制(Version control)
(1) 版本控制的作用:
a. 回滚至上一个版本
b. 比较两个版本的差异
c. 备份软件版本历史
d. 获取备份历史
e. 合并同源版本
f. 在多个开发者之间共享和协作
e. 记录每个开发者的动作,便于审计
SCI的版本历史,在多个版本之间形成线性或分支结构。
(2) 版本控制的术语:
a. 仓库(Repository):即位于SCM中的CMDB
b. 工作拷贝(Working copy):在开发者本地机器上的一份项目拷贝
c. 变化(Change or diff):即两个版本之间的差异
d. Head:指程序员正在其上工作的版本
(3) 版本控制系统的特征:
a. 可靠性:可保存版本,只要我们需要它们。并允许备份。
b. 多文件:保存项目中版本的轨迹,而非单个文件。
c. 可表示版本之间的变化,以及变化的原因
d. 可还原:可恢复老的版本的全部或部分。
e. 可回顾版本历史,既可观察整个项目,又可观察单个文件
f. 不止可以管理代码,还可以管理散文,图画等等
e. 允许多人协作
(4) 版本控制系统的种类:
a. Local VCS:本地版本控制系统: 仓库存储于开发者本地机器,无法共享和协作。
b. Centralized VCS:集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之
间的协作。
c. Distributed VCS:分布式版本控制系统:仓库存储于独立的服务器+每个开发者的本
地机器。