版本管理系统的层次设计
计算机工程与设计
1990年第 5期
撩 向阳
(华东师大,上海)
摘 要 版本管理是 管理和维护 计算机系统的重要 支持工具。 由于缺乏理论上
的分析和 研 究.使现 有版 本 管理 工具在 软件开 发实践 中缺 乏相互 的联 系和 对版
本 自身 的语 义理 解 。本 文综进 7版 本控 毒9机翱, 井提 出版 本管理 系统 的层 次设
计思 想
主题词 软件工程 软件开发
计算机软件系统在其整个生命周期内需要经常修改、校正 扩充和改进,使系统产生
多个版本,统称为系统簇 随着系统簇的不断膨胀,必须有效地管理和维护系统簇。
软件配置管理 SCM (software Configuration Management)是用来管理和维护系统
簇的软件,其功能为:对源代码修改的控制和跟踪,配置生成,出错的跟踪与报表以及产
品的版本标志和管理。
版本管理是支持 SCM 的一个工具,它应提供机制存贮、更新和查询软件的各个版
本,减少软件版本所占存储空间、控制版本访问权限、以及记录版本形成时的状态,如版
本修改的原因、内容和修改者等
一
、 版本管理工具简介
在介绍版本管理系统之前,先介绍两个概念:顺序版本和平行版本。
· 顺序版本:因错误校正等原因,对版本进行一系列的局部修改,按时间先后顺序生
成的一连串文本,称为顺序版本
· 平行版本:由于软件模块不同的实现方式或功能的扩展而形成一个以上的版本,互
称为平行版本
,.源代码控 制 系统
最早的版本管理工具是在UNIX下运行的源代码控制系统 SCCS(Source Code Con-
trol System,1975),它是一个文本控制系统。为减小存贮开销,它只存放软件的初始版
本和版本的变更。为便于管理版本,限定版本的访问权限和对版本附加标志和信息,并由
源程序带人目标文件,此外,还可查询用户加人的注释信息和形成软件的修改报表
2.变更控 制 系统
为提高目标码生成速度,变更控制系统 CCS (ChangeControl System),允许互不
干扰地同时开发同一产品的多个版本和计算目标模块间的最小差异。
3.修 改控 制 系统
一 26一
●
维普资讯
版本管理系统的层次设计
徐向 FH
{华东师大,上海)
计算机工程与设计
1990 年第 5 期
摘要 版本管理是管理和维护计算机系统会主重要支持工具。由于是之理论上
均分析和研究. 1j吏 3旦有版本管理工具在拉待开友实践宁抉乏相互均Z王军和对盖在
才;.~~苦奋古语义理解。 本文综述了滋事控制机奇的电并提出放本管理革统吟层次没
-it忌怒雹
主题词软伶工程软件丹在
计算机软件系统在其整个生命周期内需要经常修改、校正‘扩充和改进.使系统产生
多个版本,统称为系统簇。随着系统簇的不断膨胀,必~有效地管理和维护系统簇,
教件配置管理 SCM (soft皆are Configuration Management) 是用来管理和维护系统
簇的软件,其功能为:对源代码修改的控制和跟踪,配置生成,出错的跟踪与报表以及产
品的扳本标志和管理,
版本管理是支持 SCM 的→个工具,它应提供机制存贮、更新和查询软件的各个版
本,减少软件版本所占存倚空间、控制版本访问权限、以及记录版本形成时的状态弯如版
本修泼的原因、内容和修改者等q
一、版本管理工具简介
在介绍版本管理系统之前,先介绍两个概念:顺序版本和乎行,版本e
• J额序版本:因错误校正等原因嘈亘古版本进行一系列的局部修改,按时间先后顺序生
成的一连串文本.称为顺序版本.
·平行版本:由于软件摸块不同的实现方式或功能的扩展硕形成一个以上的版本,互
称为平行扳本q
1. 源 f\玛控制革绞,
最早的版本管理工具是在 UNIX 下运行的源代码控制系统 SCCS (Sour田 CodeCon
trol System‘ 1975),它是一个文本控制系统e 为减小存贮开销,它只存放软件的初始版
本和版本的变更3 为便于管理版本、限定版本的访问权限和对版本能力自标志和信息,并由
源程序帮人吕标文件,此外,还丐查询ffl户加入的注需信息和形成软件的修改报表2
1.室主拉帮革统
为提高目标码生成速度,变更控制系统 CCS (ChangεControl System). 允许互不
干扰地向时开发同一产品的多个版本和计算吕标模块汩的最小差异。
3 修改控幸~ )在统
一-26
'
•
•
‘
AT&T公司于 l982年发行了在 UNIX下运行的修改控制系统 RCS(Revision Con-
trol svstern)。在此系统 中,用户可指定文件的名称和给出版本编号,以管理多层平行版
本,此外,还用锁的办法防止当前版本被意外的 取版本”操作所覆盖。
4.依赖语 义网的源代码控 制 系统
SCCS与 RCS都限定顺序版本和平行版本,不便于多模块软件系统的描述,为克服
此缺点,采用语义网描述版本问的二元关系
j.鳊辑版本 管理 系统
为提高编辑效率,把版本控制与编辑结合起来。
在 VM /SP下运行的管理多版本的程序 P~EDIT,允许同时开发多个版本 对顺序
版本,计算并存贮版本间的差异;对平行版本,把变更部分的代码段直接插人多版本程序
并形成该段的控制信息,以供形成和显示版本。
在修改控制编辑器EH (1987)中,版本正文以行为单位,并按树形结构存贮,这样
新版本的形成就是构造新子树再与部分老子树合并而得,它提高了版本存取速度
版本管理作为 SCM 的重要组成部分,应与其它的 SCM 工具协调工作。
二、版本控制
研究版本管理,要考虑衡量版本控制机制的直观标准。
』 版 本标 志
用于区分各版本,以便于人们的理解和计算机查找。
2.版本的等价性
对于可执行版本,其等价性是指 两个版本可替换使用而不产生副作用。若两个版本
(模块)的名称相同,参变元的名称、类型和顺序都相同,则称两个版本语法上等价。语
法上等价的两个版本其功能不一定相同,因此,必须从语义上描述版本的等价性。
版本的接口由前置条件集、后置条件集和后制动作集组成,其中,前置条件集描述版
本执行前的条件,后制条件集描述版本执行后的条件,后制动作集描述版本执行后必须立
即执行的动作。两个版本是等价的,当且仅当它们的前置条件集、后置条件集和后制动作
都相同。
3.版 本 的 一 致 性
假若某版本要调用其它版本,或由不同的版本构成新版本,则要考虑版本之间的一致
当且仅当它们构成的复合版本无任何
当且仅当它们构成的复合版本无任何
4.版本的兼容性
版本的等价要求功能完全相同,但在实际中用某版本替换它版本时,只要求部分功能
的匹配即可,即版本的兼容性
(1)严格兼容
一 27~
的 的
致 致
。
是 是
成 法 义
构 语 语
本 本 本
版 版 版
个 它 它
干 其 其
若 与 与
中 本 本
统 版 。版 系 个 范 个 范
由 一规 一规
. . . . 厶日 : 厶日 本 致 符 致 符
版 一能 一能
合 法 功 义 功
复 语 且 语 且 误 误
错 错
■ ●
维普资讯
AT&T 公司于 1982 年发行了在 LTNIX 下运行的修改控制系统 RCS (Revísion Con.
lrol Syslem) 0 在此系统中,用户可指定文件的名称和绘出极本编号.以管理多层干行版
卒,此外‘还!fj锁的办法防止当前扳卒被意外部"取版本"操作所覆盖。
4. 依赖语义到的返 f-\码控制系统
SCCS 与 RCS 都限定顺序版本和平行般本,不便于多摸块软件系统的描述,为克假
' 此被点弯采用话义网描述版本阔的二元关系,
'
'
5. 主自丰毒版本管理革统
为提高编辑效率.把版本控制与编辑结合起来。
在 VM/SP 下运行的管理多极本的程序 P_EDIT弯允许同时开发多个版本。时片荒序
版本.计算并存贮版本阔的差异;对平行版本‘把变更部分的代码段直接插入多版本程序
并形成该段的控制信息弯以供形成和显示版本@
在修改控和j编辑器 EH (1 987) 中.版本正文以行为单位,并接树形结构存贮.这样
新版本的形成就是构造新子树再与部分老子树合并顶得.艺提高了版本存取速度.
版本管理作为 SCM 的重要组成部分嘈?在与其它的 SCM 工具协娓工作n
二丽版本控制
研究版本管理,要考虑衡量版本控制槐树部直观标准。
1. 鼠本标志
用于区分各版本.以便于人们的理解和计算机查找。
2 鼠本的辛价位
对于可执污版本.其等价位是指两个版本可替换使用而不产生lii~作用 D 若两个版本
(模块)的名称梧同,参变元的名称、类型和颇序都相同,则称两个版本语法上等价。 浩
浩上等价的两个版本其功能不一定相同.因此.必ffl从语义上描述版本的等价性。
版本的接口由前重条件集、后置条件集和后制动作集组成,其中哩前量条件集描述版
本执行前的条件.后翻i条件集描述版本执行后的条件.后章tl动作集描述版本执行后必须立
即执行的动作。两个版本是等价的,当旦仅当它们的前置条件集、后置条件集和后翻动作
都相同。
3. 版本的一致性
假若某版本要满用其艺版本嘈或由不同的主匡本构成新版本,国u要考虑版本之间的一致
性,
复合版本:由系统中苦于个版本构成。
语法一致: 个版本与其它版本语法是一致的.当且仅当它们构成的复合版本无任何
错误旦功能符合规范。
语义致.一个版本与其它版本语义是致的,当且仅当它们构成的复合版本无任何
错误旦功能符合规范。
4. 成本约最容性
,驳本的等-1ft-要求功能完全相同,但在实际中用某版本替换它版本时,只要求部分功能
的匹配即可.那版本的兼容性b
(1)严格兼容
-27
版本 是 的严格兼容版本当且仅当满足下列条件:
I.V 的前置条件值域包含 的前置条件值域;
Ⅱ. 的后置条件值域包含 的后置条件值域;
Ⅲ.后制动作集相等。
严格兼容版本具有可替换性。
(2)向上兼容 ·
版本 是 V.的向上兼容版本当且仅 当满足下列条件:
I. 的前置条件值域包含 的前置条件值域;
Ⅱ 的后置条件值域包含 的后置条件值域; ‘
Ⅲ. 的后制动作包含 的后制动作。
向上兼容版本保留且扩充原版本的功能。
(3)实现兼容
严格兼容与向上兼容版本要求保留原版本的全部功能,当只考虑保留部分功能时,则
需放宽限制,为此,引人实现兼容概念。
假定版本由接口说明与实现体两部分组成,实现体部分的前置条件集、后置条件集和
后制动作集称为版本的传播接口。
版本 与 严格实现兼容当且仅当两版本的传播接口相同。
版本 是 V 的强实现兼容版本,当且仅当 的传播接VI是 传播接VI的严格兼
容版本。
等价版本必是严格实现兼容,但反之不然。严格实现兼容与严格兼容都是强实现兼
容
假若不考虑用版本 替换 V 所产生的副作用,则称版本 与 V.的弱实现兼容版
本。
(4)系统兼容 ,
假若版本 用版本 V2替换处处满足实现兼容性,则称 与 系统兼容。 与
是严格 (强、弱)系统兼容的,当且仅当在系统出现 V.的任何地方, 都是 的严格
(强、弱)实现兼容版本。
一 28一
图 , 兼容的层 次 图 2 版 本管理 系统的构成
●
●
维普资讯
4
版本 V~ 是民的严格兼容版本当旦仅当满足下列条件
,始前宣条件筐域包含凡的前置条件但域,
Il .Vo 的后置条件恒域包含 V, 的后置条件恒域:
ID.后靠tl动作集梅等e
严格兼容版本具有可替换性。
。}向上兼容
版本只是町的向上兼容版本当旦仅当满足下列条件;
I 冉的前置条件植域包含 V, 的前重条件值楼;
E 们的后宣条件值域包含叭的后置条件植域;
ID ,~亏的后制动作包含 V, 的后制动作。
向上兼容版本保留旦扩充原版本的功能e
m 实现兼容
严格兼容与向上兼容版本要求保留原极本的全部功能,当只考虑保留部分功能时.则
需放宽限秘‘为此,引人实现兼容概念。
!假定版本也接口说明与实现体两部分组成电实现体部分的前宣条件集、后宣条件集秘
后制动作集称为,极本的传播接口 e
版本 V2 与民严格实现兼容当且仅当两版本的传播接口梅同。
版本 V2 是民的强实现兼容版本咽当旦仅当 V, 的传播主要口是 Vo 传播接口的严格兼
容版本,
等价版本必是严格实现兼容、但反之不然e 严格实现兼容与严格兼容都是强实现兼
容b
i睦若不考虑用版本 Vo 替换民哥哥产生的副作用,则称版本民与 V, 她弱实现兼容版
本,
(4) 系统兼容
毅若猿本 V, 用版本 Y2替换处处满足实现兼容性,则称只与 V, 系统兼容。 V2 与只
是严格{盔、弱}系统兼容的.当II仅当在系统出现矶的任何地方雹 E毛都是只的严格
(强、弱}实现兼容版本3
•
‘
强文现藉黯臀
西λ现被害
版本管理革统约构或盟主兼容约层次m 1
28
一
根据实现兼容的层次可划分系统兼容的层次 各种兼容之间的层次关系如图 1所示
.
版 本控 制 机 制
(1)无版本控制
开发者只存放当前版本或某些顺序版本。程序员简单地将若干版本凑成一个复合版
本,不考虑配置的规范;版本标志、等价性和兼容性程序员决定;版本的一致性通过编
译、连接、运行和测试过程来判定。系统重构较困难。
(2)基本版本控制
用版本标志区分和访问版本,它是用句号 ‘ ’分隔的自然数序列,如 1。5。 。复合版
本由成员名和版本标志序列组成,系统按列表或版本间隐含依赖关系形成复合版本,如
{det 1.5,Jian 3.9.1.1.}就由det 1.5和Jian 3.9.1.1组成。版本的等价性和兼容性由程序员确
定,而一致性通过编译、连接、运行和测试过程来判定。
基本版本控制对象是模块和文件。
(3)强类型版本控制
强类型版本控制的对象是语法体,如过程、函数、数据结构等。等价指语法上的等
价, 自动验证版本的语法一致性,语义一致性在版本的生成与测试过程中确定。
(4)语义版本控制
为达到语义上的等价,根据系统兼容的层次 (严格、强、弱)选择实现兼容版本,并
进行强类型校验, 自动完成版本替换。生成复合版本时, 自动验证语义一致性 用向上兼
容概念区分平行版本和顺序版本
在语义版本控制机制下,系统对版本等价性、一致性和兼容性的理解更接近现实
三、版本管理的系统设计
』.基本思想
在大型软件开发环境中,提供版本管理控制和考虑高层次的系统配置,为的是减轻配
置管理的负担
版本管理系统由若干配置组成,配置由若干模块组成,而模块可有多个版本:配置层
提供机制控制,组成配置的各模块和复合版本;模块层提供机制去管理一个模块的多个版
本;文本层实现有效地存贮多版本文本
系统的构成如图 2所示。
微机上的版本管理系统的设计主要考虑模块层和文本层。
2.配置层 的设计
系统的模型定义了系统成员,即模块、文档和程序员等之间的相互依赖关系 图3给
出一个简单的系统模型
系统设有:配置表,它记录配置生成的历史信息;修改请求 (MR)表,它记录提交
的修改请求和采取的相应处理。配置层根据这两张表组成复合版本。
系统有两种方式支持程序员的修改:一是开放方式,即程序员的修改会导致系统的修
改。如源程序修改后,系统自动编译、连接和装配;二是保护方式,即程序员的修改不影
响其它程序的工作,除非修改完毕并已被确认
被删除的版本要保证不再被其它模块所调用
一 29—
维普资讯
•
,
•
根据实现兼容的层次可划分系统兼容的层次。各手中兼容之间的层次关系如图 1 所示。
5. 成本控制机制
(1)无版本控制
开发者只存放当前版本或某些顺序版本雹程序员简单地将若干版本凑成一个复合版
本.不考虑配置的规范:版本标志、等i命性和兼容性程序员决定;版本的一致性通过编
译、连接、运行和测试过程来判定。系统重构较困难。
m 基本版本控能
用版本标志区分和访问版本.它是用句号二'分霜的自然数11"jlJ,如.\. 5<'0 复合版
本出成员名和版本标志序列组成咽系统接到表或版本商隐含依赖关系形成复合版本.如
{det . Jian . . J就虫 det 和 Jian . 组成。版本的等价性和兼容性由程序员确
定,而一致性通过编译、连接、运行程测试过程来判定。
基本版本控制对象是模块和文件。
(3)强类型版本控制
强类型版本控制的对象是语法体电如过程.函数、数据结构等。等价指语法上的等
价,自动验证版本的语法一致性,语义一致性在版本的生成与程d试过程中稳定@
{的语义版本控制
为达到i吾义上的等价,根据系绞兼容的层次(严格句强、弱)选择实现兼容版本.并
进行强类型校验.启动完成版本替换2 生成复合版本时,自动验证语义一致性e 用向上兼
容凝念区分平行版本和顺序版本B
在语义版本控和j凯和l下‘系统对版本等价性、一致性和兼容性始理解更接近现实e
三、版本管理的系统设计
1. 基本思想
在大型软件开发环费中.提供版本管理控剥和考虑高层次剖系统配置,为的是减轻配
置管理的负担。
版本管理系统由若干配置组成电配置由若干模块组成,商模块可有多个版本:配置层
提供机制控制,组成配置的各摸块和复合版本;模块层提供机制去管理一个模块的多个版
本:文本层实现有效地存贮多版本文本回
系统的构成如图 2 所录。
做机上的旅卒管理系统的设计主要考虑模块层和文本层。
2. 配置层的设计
系统的模型定义了系统成员,却模块.文档和程序员等之间的相互依驳关系e 图 3 绘
出一个简单剖系绞模型s
系统设有:配置表,它记录配置生成的历史信息;修改请求 (MR) 表,它记录提交
的修改请求和采取部相应处理也配置层根据这两张表组成复合根本。
系统有两种方式支持程序员的修改:一是开放方式,部程序员部修改会导致系统的修
改。如源程序修改后.系统自动编泽、连接和装配;二是保护方式. ~p程序员必修改不影
响其它程序的工作,除非修改完毕并已被确认e
被册j除的版本要保证不再被其它模块所调用。
一-29 一-
生成复合版本时,系统按模块接[5I说明与系统兼容性要求,自动选择实现兼容的版
本,并进行版本一致性的 自动验证。
j.摸 块 层 的设 计
模块由接口、文本和权限表三部分组成,其中,接 口描述了系统模块所调用的系统成
员,权限表给出允许用户使用模块中版本的条件。
模块层建立 模块 的多个版
本之问相互依赖关系模型,最
常用的是版本树 ,树中结点表
示版本
版本标志 用于 区分不 同版
本 它的作用是:
· 标识版本
· 提供查找版本线索,版
本标志应隐含版本的生成路 图j 系统模型示例
径
版本 由接 口说明、文本和版本记录三部分组成,其中,接口说明给版本 的语义信息,
供系统组成平行版本或顺序版本和进行兼容性检查等用;版本记录了版本形成的原因 时
间等信息。
用户存取版本时,系统检查和确定所使用的模块,然后按版本模型执行存取动作。
4 文 末层 的 设 计
(1)delta
模块的多个版本之间具有大量相同的文本,如果将每个版本都完整存放,势必浪费大
量存贮空间,但按版本形成的方式可只存放某个完整版本和它版本相对于完整版本的差异
delta,由完整版本和delta装配成它版本的完整版本。
版本 A早于版本 B生成,版本 B相对于版本 A的 delta称为向前 delta;反之,版本
A相对于版本 B的 delta称为 向后 delta。
原则 上讲,只要存放所有版本中的某个完整版本,用向前delta表示其它版本,连接
起来组成版本树,就可生成任何版本。假如完整版本取最早版本,其余为向前 delta,因
而,生成第 n个顺序版本利用 (n一1)次向前 delta,便可得到最新版本 当然,这种存
放法要得到最新版本所耗费时间为最长,但一般来说,最新版本的使用频率较高,因此这
种俘贮方式是浪费的,而存放最新版本和向后 delta时间上为最省,但每个分枝上必须存
放完整的最新版本,这又使存贮开销增大 为此采用混合 delta方式,即在版本树的主干
上存放 向后 delta,其它分枝存放向前 delta,这种存贮方法的系统称为修改控制系统 RCS
(Revision Control System)。
de1ta由编辑指令组成。delta可交叉存放在一个块里,随着 delta数 目增多,块也就
越来越大,系统搜索必定扫描许多无关的编辑指令,从而影响存取效率。而独立存放 del-
ta.版本形成时,系统按 delta中的指令编辑老版本,这样,既节省时间又可方便地管理
de]ta。
(2)布尔表达式
一 3O一
●
■
维普资讯
生成复合版本时,系统按摸块接口说明与系统兼容性要求,自动选择实现兼容的版
字4 并进行版本一致性的自动验证a
3. 模块层的运计
摸块出接口、文本和权限表三部分组5立其中.接口描述了系统模块所溺用的系统成
员司权限表给出允许1Il户使用摸块中报本的条件2
模块层建立模块的多个极
本之间相互依辑关系模型、最
常用的是版本树,树中结点表
示!原本。
道豆本标志用于区分不同版
本,它的作用是 I
'标识版本电
-提供查找版丰线索‘报
本际志应器含版本的生成路
径H
蜡多A
围 3 革统模型示然
版本应接口说明毛文本和版本记录三部分组成,其中.接口说明给版本的语义信怠,
供系统组成平行板本或顺序版本军在进行兼容性检查等用;版本记录了版本形成的原因穹时
间等信息军
用户存取版本flt雹系统检查辛苦确定所使用的模块,然后按版本模型执行存取动作8
4 丈本层的设计
(l) delta
模块的多个版本之间具有大量相同的文本,如果将每个版本都完整存放.势必浪费大
量是贮空间,但按版本形成的方式可只存放某个完整版本和它版本梧对于完整版本的差异
del园,由完整版本和过elta 装配成它版本的完整版本e
版本 A 卒子版本 B 生成,版本 B 相对于极本 A 的 delta 称为向前 delta; 反之,版本
A 阔砖于版本 B 的 delta 称为向后 deltao
原则立1并咽只要存放所有版本中的某个完整版本,J!l向前 delta 表示其立版本,连续
起来组成版本树咱就可生成任何版本E 假如完整版本取最导版本,其余为向前 delta. 因
而 τ 生成第 n 个顺序版本利用 (n-l) 次向前 delta. 便可得到最新版本a 当然,这种存
放法要得到最新版本所耗费时间为最长‘但一般来说,最新版本的使用频率较高,因此这
种仔在二方式是浪费的‘那存放最新版本和向后 delta 对间上为最省,但每个分枝上必须存
放完整的最新版本咽这又使存贮弄错增大p 为此采用混合 delta 方式,即在版本树的主子
上仔放向后 delta. 其它分校存放向前 delta. 这种存贮方法的系统称为修改控秘系统 RCS
(Revisíon ControlSystem)o
delta 出编辑指令组成o delta 可交叉存放在一个块里,随着 delta 数目增多.块也就
越来越大,系统搜索必定扫描许多元关的编辑指令,从而影响存取效率。陈独立存放 del
坦‘版本形成时,系统按 delta 中的指令编辑老版本.这样,就节省时间又可方便地管理
delta二
(2)布尔表达式
一到一
•
•
•
-二二二
●
●
为方便平行版本形式,在程序码中分段插人布尔表达式控制信息,说明该段属哪些平
行版本使用,系统根据布尔表达式顺序取出各代码段形成一个版本,此称为布尔表达式方
法 。
delta方法与布尔表达式也可结合起来,即对于顺序版本以delta形式存放;而对于平
行版本则加布尔表达式于一个多版本程序之中。
(3)索 l树
delta方法由两个完整的版本计算出 delta,版本恢复即为对 delta的迭加
版本由若干数据项 (如行、块或字符)组成,以数据项的索引为结点构成索引树,按
中序遍历可得版本全文。索引树的构造:新版本中的新数据项构成子索引树,与老索引树
中保留的子树合并而得。
版本模型 由索引树的根组
成,检索按版本模型进行。图 4
给 出版 本 模 型与 索 引树 的关
系,其 中 ,1,厶,1 分别
代表版本 , , ,V 索
引树,口、b、c、 ⋯、g为数据
项, 为最初版本, 与 V
平行, 由 V.的 a、b、c项和
g项组 成 , V 由
e、 g、d、c项组成。
利用索引树,增加新版本
就是构造索引树 , 因此版本 的
图 4 版 本模型与索引树
菩与添加较为方便,适合在编辑状态上存取版本,版本亦不需完整的表示,因此它可有效
地用于大型程序版本。
四、结束语
版本管理系统作为一个独立的工具,缺乏对版本自身的语义理解。版本管理的设计主
要在文本层,即考虑如何节省存贮空间和提高存取速度。从提供一个集成工具出发,版本
管理应与系统的工作有机地结合起来。例如,版本管理与操作系统集成使得用户不必区分
版本名称和操作系统中的文件路径名,不必使用单独命令对版本进行压缩或恢复,不需知
道文件是否有版本控制和文件路径名中是否包含版本选择装置,即版本管理对用户透明。
版本管理的进一步探讨包括对目标码版本的扩充和文本中冗余字符的压缩,适应计算
机网络发展,分布式版本管理的研究等。
参 考 文 献
(1) 董士海,计算机软件工程环境和软件工具,科学出版社,l988年8月
(221 Dewayne E Perry, “ Version Control in the Inscape Environment” , ACM
027O-5257/87/03O0/0142
(下转第 49页)
一 3l一
维普资讯
•
为方便于行版本形式.在程序码中分段插入布尔表达式控剥信息.说现该段属哥哥些子'
行版本使用,系绞根据布尔表达式顺序取出各代码段形成一个极本-此称为布尔表达式方
法。
deJta 方法与布尔表达式也可结合起来,郎对于顺序版本以 delta 形式存放、而对于平
行版本则如布尔表达式于一个多版本程序之中,
(3)索寻i树
delta 方法由两个完整的版本计算出 delta,版本恢复即为对 del汩的迭姻。
版本自若于数据项 i主自行、块或字符}组成.以数据项的索引为结点构成索寻|梅、按
中序遍历可得是E本全文自索引树的构造‘新版本中的新数据项构成子索引树,与老索引树
中保留在号子树合并顶得.
版本模型白索引树的根组
成,检索按版本模型进行。图 4
给出是重本模型与索引树的关
系.其中 11 , h." 13' ]' 3 分别
代表版本 V]. V, 唱 V)~ V f 3 索
引树, ι b 、 ι "、 g 为主支援
I罢 • V] 为最部版本,只与 V' 3
平行, VJ 由 V, 的 ι b, c J固和
d, J, g 项组成鲁 v' 3 由 d、
ιf、 z、 a、 c 项组成=
利用索引树.增加新版本
就是构造索引树嗜因此版本的
善与添加较为方便鲁适合在编辑状态上存取版本,
她用于大型程序版本.
1,
•
E孟叫 aι 2 ,, -4 1 I,
d < r d < , b
国 4 辈在本模型与索引裙
版本亦不需完整的表示,因此它可有玫
囚、结束语
版本管理系统作为一个独立的工具.缺乏对版本自身的语义理解,版本管理的设计主
要在文本层, Jl~考虑如何节省存贮空间和提高存取速度.从提供一个集成王具出发,版本
管理应与系统的工作有貌地结合起来。例如,版本管理与操作系统集成使得用户不必区劳
版本名称和操作系统中灼文件路径名,不必使用单独命令对版本进行压缩或恢复,不需知
道文件是否有版本控制郭文件路径名中是否包含版本选择装置,翻版本管理对用户透明.
' 版本管理的进一步探讨包括对目标码版本的扩充和文本中冗余字符的压缩,适应计算
机网络发展,分布式版本管理的研究等,
• 参考文献
(l) 董主海.计算优软件工庭环捷和软件王具.科学出版社, 1988年8月。
(2) Dewayne E. Perry. Versiùn Control in 出e lnscape Environrnent" 、 ACM
027♀-5257/87/0300/0142
{下转第 49 页}
31 一-
●
●
五、小结
上述应用实例中,用查询方式输人动作指令,并且用子程序完成延时,占用机时很
多。在更复杂的控制系统中,可很方便地用中断方式输人动作指令,同时可在硬件上增加
CTC计时电路,大量节约机时 通过这个应用实例说明了在许多控制系统中完全可用微
处理器 (或微机)在完成主要控制功能的同时,完成步进电机等执行器件的控制,充分开
发微处理器 (或微机)软件功能,实现一机多用。本文介绍的程控步进电机控制器,硬件
结构简单、功能较强、装调方便,有较强的软件开发潜力。配合适当软件可有较广的应
用。只要改变软件就可以适应各种步进电机对相数和相序的要求,完全可替代各种通用步
进电机驱动电源。
THE DESIGN oF M ULTI—FUNCT10N
PR0GRAM C0NTR0LLED STEPPING M 0T0R
CONTROLLER
Wang Aiguo Wu Quansheng Liang Xuanming
ABSTRACT The design of microprocessor bassed multi—function program controned
stepping motor controller is described here,The possibility and major advantages,while a
microprocessor takes on major controlling task it gives out stepping motor phase pulses,
are pointed out.
(上接第 3l页)
C33 AlbertAlderson, A ace—EfficientTechniqueforRecordingVersions ofData ,Soft Eng Jour,Nov,1988
C43 RudN Bazahnans, Evolution of Con uration M attagement ,ACM SIG SOFI S.E NOTES,Vol 10,No 5,
Oct,I985.
LAYER DESIGN OF VERSION
M ANAGEM ENT SYSTEM
Xu Xiangyang
:~dSSTRACT Version management is an important supporting tool to managing and ma intaining tom-
puter svstems.The existing tools are lack of understanding of semantics and relations to each other in
software devdopment prac~ces b~cause~tg,e theorRic analysis v~ork has been forte.Th is paper SUl'~tIla-
rizesversion Controlmechanism and presents a guidgelineforlayer design ofver~onmanagement systems,
— — 49——
维普资讯
•
'
E
-
'
五、小结
上述应用实锅中、周查询方式输入动作指令,并且珞子程序完成延对唾占m机对很
多。在更复杂的控制系统中.可fll方便地用中断方式输入动作指令,同时可在硬件上增加
CTC 计时电路哩大量节约矶时z 通过这个应用实例说明了在许多控制系统中完全可用微
处理器{或敌机}在完成主要控韶功能的同时唱完成步进电机等执行器件的控制,充分开
发微处理器{或微机 1 软件功能‘实现一机多用,本文介绍自专程控步进电机控制器,硬件
结构简单‘功能较强、装调方便、有较强约软件开发潜力,配合适当软件可有较广的应
用e 只要改变软件就可以适应各种步走电机对招数牵挂相序的要求,完全写替代各种运用步
进电机驱动电E章程
τHE DESIGN OF 如lULTI-FU到CTION
PROGRAM CONτROLLED STEPPING MOTOR
CONTROLLER
Wang AigllO Wu Quansheng Liang Xuanmi吨
ABSτRACττhe desígn of mícroprocessor bassed multi-function program controUed
stepping motor controller is d目críbed he匠、 The possibility and major advantages‘冒出ea
rnicropro四SSor takes on m句or contro凶ng task it gíves out stepping motor phase pulses.
are pointed OllL
{上接第 31 页)
(3) Albert Alderson. .. A Spa四-Effiçlent Tech羽3伊e for RξCO'f'也ngV白白ons of DaLa ~, 町,且丹、 1988
(4) Rurly Bazahnø血. • é、。lution úf Conftgura缸00 Management" , ACM SIGSOFT 穹 O , No 5.
OcLl 98圭
LA YER DESIGN OF VERSION
如1ANAGE岛1ENτSYSTEM
XllX且ngyang
AßST茸ACf V,εrSlOn 回anagement 150 an lmpo且ant suppo币ng tool to n盟nag1缸g and com
puter syste目S_ The exîsting 担。Is are lack of understanding of semantics and 四latïons to each 0坠E 回
software development practices because ütt\笔 theo由主canal丁~SlS '" mK has been done.τb~ paper summa-
rizes. versÎÐD oontrol mechanism and presents a g四dgelìne for layer design of version rnanagement systems
一-49 一-
三-."...._- ----------一---- 一一