2.2.4 版本
版本(版本号)是表示一个CI具有一组定义的功能的一种标识。随着功能的增加,修改或删除,CI被赋予不同的版本号。一般在配置标识方案中给出版本标记方法。
2.2.5 签入和签出(Check in and Check out)
签出(Check out)是指从配置管理系统的文件库中取出一个副本作为自己的工作拷贝,并在这个工作拷贝上进行自己的工作。
签入(Check in)是指将自己的工作拷贝提交到配置管理系统的文件库中,使得他人可以从文件库中获取你的最新修改版本。
对于源程序(文件)的控制管理有两种方式,分别以VSS和CVS为代表
VSS使用的是“Lock-Modify-Unlock”的方式,即一个文件在同一时刻只能由一个人在进行修改;当某个人将文件签出后,该文件即被锁定,其他人即不能再对文件进行修改,其它人要进行修改只能等待签出人将文件修改完成,签入该文件解除锁定后才可以将该文件签出进行修改。
这种方式的好处就是可以防止由于多人同时修改一个文件导致互相覆盖,某些改变丢失;但是对于协同工作不利;
在绝大多数开源软件的开发中,对源代码的控制管理采取的是CVS,CVS的管理方式是“Copy-Modify-Merge”,在这种方式下,对于同一个源文件可以多人同时进行修改,修改后在提交时如果发现已经有他人的修改提交到了版本库中,系统将自动对多人所进行的修改进行合并;如果有两个人同时修改了同一个源文件的同一行,这时系统会提示发生冲突(Conflict),需要对该行进行修改的人进行交流,确定应该如何进行修改。
2.3 配置管理的主要任务
2.3.1 版本控制
版本控制是所有配置管理系统的核心功能。配置管理系统的其它功能大都建立在版本控制功能之上。版本控制的对象是软件开发过程中涉及的所有文件系统对象,包括文件、目录和链接。可定版本的文件包括源代码、可执行文件、位图文件、需求文档、设计说明、测试计划、和一些ASCII 和非ASCII 文件等等。目录的版本记录了目录的变化历史,包括新文件的建立、新的子目录的创建、已有文件或子目录的重新命名、已有文件或子目录的删除等等。
版本标识的目的是便于对版本加以区分、跟踪和检索,以表明各个版本之间的关系。另外版本控制是实现团队并行开发、提高开发效率的基础。
文件或目录的版本演化的历史可以形象地表示为图形化的版本树(VersionTree)。版本树由版本依次连接形成,版本树的每个节点代表一个版本,根节点是初始版本,叶节点代表最新的版本。最简单的版本树只有一个分支,也就是版本树的主干;复杂的版本树(如并行开发下的版本树)除了主干外,还可以包含很多的分支,分支可以进一步包含子分支。
图2-3-1-0: ClearCase 版本树示例图
2.3.2 工作空间管理
在引入了软件配置管理工具之后,所有开发人员都会被要求把工作成果存放到由软件配置管理工具所管理的配置库中去,或是直接工作在软件配置管理工具提供的环境之下。所以为了让每个开发人员和各个开发团队能更好的分工合作,同时又互不干扰,对工作空间的管理和文护也成为了软件配置管理的一个重要的活动。
根据需要把它划分为个人(私有)、团队(集成)和全组(公共)这三类工作空间(分支),从而更好的支持将来可能出现的并行开发的需求。
l 私有分支
私有分支对应的是开发人员的私有开发空间。开发人员根据任务分工获得对相应配置项的操作许可之后,他即在自己的私有开发分支上工作,他的所有工作成果体现为在该配置项的私有分支上的版本的推进,除该开发人员外,其他人员均无权操作该私有空间中的元素。 配置管理软件研究与实现(5):http://www.youerw.com/jisuanji/lunwen_9070.html