Page 48 - AV_202212
P. 48
技术
二者的集合,在配置管理过程中作为一个单个实 工作区(Working Directory)是你在电脑里能
体来对待。典型配置项包括项目计划书、需求 看到的目录,直接编辑的地方,肉眼可见,直
文档、设计文档、源代码、可执行代码、测试用 接操作,任何对象都是在工作区中诞生和被修
例、运行软件所需的各种数据,它们经评审和检 改。暂存区(Staging)类似于缓存区域,临时
查通过后进入配置管理。 保存你的改动,会记录git add添加文件的相关
配置库(Configuration Library)存放配置项 信息(文件名、文件大小、timestamp…),不
并记录与配置项相关的所有信息,是配置管理的 保存文件实体,通过id指向每个文件实体。可
有力工具,利用库中的信息可回答许多配置管理 以使用git status查看暂存区的状态,任何修改
的问题。例如哪些客户已提交了特定的系统版 都是从进入暂存区才开始被版本控制。仓库区
本,运行一个特定的系统版本需要什么硬件和系 (Repository)分为本地仓库和远程仓库,本地
统软件等。使用配置库可以帮助配置管理员把分 仓库保存了对象被提交过的各个版本,比起工作
布式系统开发过程的各种工作产品,包括半成品 区和暂存区的内容,它要更早一些。git commit后
或节点产品和最终产品管理得井井有条,使其不 同步Staging的目录树到本地仓库,自动初始化
致管乱、管混、管丢。 为本地仓库,同时它会新建“.git”目录方便从下
配置库可以分为开发库、受控库、产品库3 一步通过git push同步本地仓库与远程仓库。只
种类型。开发库(Development Library)用于 有把修改提交到本地仓库,该修改才能在仓库中
保存开发人员当前正在开发的配置实体,如: 留下痕迹。可以在任何地方新建本地仓库,只需
新模块、文档、数据元素或进行修改的已有元 要在目标目录下执行“git init”指令,就会将此目
素,开发人员可以随意修改;受控库(Controlled 录自动初始化为本地仓库。远程仓库内容可能与
Library)是包含当前的基线加上对基线的变更, 本地仓库同步,也可能不同步,但是它的内容是
在分布式系统开发的某个阶段工作结束时,将当 最早的。与协作者分享本地的修改,可以把它们
前的工作产品存入受控库。受控库存放测试版本 push到远程仓库来共享。三个区之间的工作流及
的代码,需要开发组长提交测试申请修改。产品 对应使用的指令如下图所示:
库(Product Library)包含已发布使用的各种基线
的存档,被置于完全的配置管理之下。在分布式 三、分布式系统配置管理最佳实践和关键
系统完成系统测试后,作为最终产品存入产品库 技术点
中,等待交付用户或现场安装。 分支(Branch)是软件版本演化图中的一条路
分布式版本管理系统对本地数据管理,分 径,是软件的一个独立演化的版本序列。在配置
为三个区,分别是工作区,暂存区和仓库区。 库中,各分支是独立存储的。在软件版本演化
48