软件配置管理SCM和版本控制系统(VCS)

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:分布式版本控制系统:仓库存储于独立的服务器+每个开发者的本

           地机器。