软件工程课程设计报告-版本控制工具综述

导读:并可以快速地回溯到任一历史版本,系统管理员使用Firefly的内置工具可以方便的进行存储库的备份和恢复,而不依赖于任何第三方工具,VisualSourceSafe:微软的版本控制工具,VisualSourceSafe是一种源代码控制系统,它提供了完善的版本和配置管理功能,用户可以恢复文件的早期版本,项目组的其他成员也可以看到有关文档的最新版本,提供了方便易用、面向项目的版本控制功能,Visua

软件工程课程设计报告-版本控制工具综述

行开发和管理项目中各阶段点的各种资源,使得产品发布易于管理;并可以快速地回溯到任一历史版本。系统管理员使用Firefly的内置工具可以方便的进行存储库的备份和恢复,而不依赖于任何第三方工具。

2.5“入门级”的Visual SourceSafe(开源集中式)

Visual SourceSafe:微软的版本控制工具,仅支持Windows操作系统。虽然简单好用,但是仅适用于团队级开发,不能胜任企业级的开发工作。

Visual SourceSafe是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。VSS通过将有关项目文档(包括文本文件、图象文件、二进制文件、声音文件、视屏文件)存入数据库进行项目研发管理工作。用户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS,它的每次改动都会被记录下来,用户可以恢复文件的早期版本,项目组的其他成员也可以看到有关文档的最新版本,并对它们进行修改,VSS也同样会将新的改动记录下来。你还会发现,用VSS来组织管理项目,使得项目组间的沟通与合作更简易而且直观。

VSS可以同Visual Basic、Visual C++、Visual J++、Visual InterDev、Visual FoxPro开发环境以及Microsoft Office应用程序集成在一起,提供了方便易用、面向项目的版本控制功能。Visual SourceSafe可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。在提倡文件再使用的今天,用户可以同时在文件和项目级进行工作。Visual SourceSafe面向项目的特性能更有效地管理工作组应用程序开发工作中的日常任务。

为了更好的了解VSS,有必要对如下一些概念给予说明。 1.VSS中的文件

当你要修改某个文档时,需要先从数据库中将它签出(check out),或者告诉VSS你要编辑该文档。VSS会将该文档的副本从数据库中拿到你的工作文件夹(working folder)中,你就可以修改你的文档了。如果其他用户再想对同一文档进行修改,VSS会产生一个信息,告诉他该文档已被签出(check out),从而避免多人同时修改文档,以保证文档的安全性。

当你完成修改之后,需要将文档签入(check in)VSS。这个操作从你的工作文件夹(working folder)中复制被你修改的文档,并将它放回VSS数据库,以便其他用户能够及时看到文档的改动。VSS能够保存文档的所有改动,并显示最新版本,同时早期版本也会被跟踪记录下来。VSS对反增量技术的运用,仅需要用很少的磁盘空间就能使得用户获取文档的所有版本。

如果你没有修改文档,你可以执行撤消签出(undo check out)命令,文档

6

将被保存为被签出(check out)之前的状态。

如果你只需读取某一文档而并不需要编辑它,你可以执行取出(get)命令,将文档放入你的工作文件夹,再选择查看文档(view),来查看你的文档的最新版本。 2.VSS中的项目

项目(project)是指用户存储在VSS数据库中的所有文件(file)的集合。用户可以在项目之间或项目内部实现文件的添加(add)、删除(delete)、编辑(edit)、共享(share)。一个“项目(project)”在很大程度上类似于一个普通系统的的文件夹,不同的是它能更好地支持文件合并(merge)、跟踪(archive)和版本控制(version control)功能。

文件保存在VSS数据库中的项目(project)里。你无须管理存储在VSS中的文件正本,除非你要检查或与其它拷贝进行比较。

VSS为每一位用户提供了一份备份文件放入工作文件夹(working folder),供用户对文件进行查看与编辑。尽管没有工作文件夹也可以查看文件,但要想真正实现对文档的处理,必须建立工作文件夹。 3. VSS的版本控制功能

VSS能够保存文件的多个版本,包括文件版本之间每一处微小的变动。版本控制有以下几方面的内容:

? 组内合作——在缺省的情况下,一般一个文件在某一时间只允许一个用户对其进行修改,这样可以防止文件意外地被其他用户改动或者覆盖。但管理员可以改动这种缺省的设置,允许文件多层签出。这种设置也能防止过多的、不必要的改动。

? 版本追踪——VSS能够对源代码和其他文件进行存储和早期版本的追踪,从而实现重建文件早期版本等有关功能。

? 跨平台开发——在多平台开发的情况下,版本追踪用于维护核心代码。 ? 代码的再使用—— 追踪程序基准使得代码可重用。 4. 文件的拆分和共享

在VSS中可以实现一个文件被多个项目共享(share)。在一个项目中对文件的改动可以自动反映到其他共享的项目中去。这正提倡了代码重用。在file菜单中的properties中,点击link,可以查看某一文件的共享情况。

拆分(branch)是将文件从原来共享的项目中分离出来的过程。它使得VSS可以实现从不同的路径追踪文件。

注意:在其他版本控制系统中,分支是通过跟踪版本号来实现的。例如:版本“2.3.9.2”是版本2.3的第二个修订版本的第九个分支。而VSS通过明显不同

7

的项目名称实现对文件分支的跟踪。

拆分文件就断开了共享连接,使得本项目中的文件与其他原来共享的项目无关。对此文件的修改将不会再反映到其他项目上。拆分是这样被建立的:两个文件以前有着共同的历史记录,从实现拆分开始,他们的历史记录将被VSS分别追踪。

拆分文件之后,link按纽将不再显示已断开的连接,但你可以用path(file菜单中的properties项)按纽浏览拆分的历史记录。

共享(share)文件就是在多个项目间建立文件的连接。拆分(branch)文件就是在项目之间建立了不同的文件路径。 5. 工作文件夹(working folder)

VSS是存储和管理文件的工具,但是编辑和编译文件必须在VSS指定文件夹中进行。这个文件夹叫工作文件夹,它可以是现存的文件夹,也可以是VSS新建的文件夹。VSS浏览器在文件列表上方显示了文件的工作文件夹的路径。 在VSS系统中,工作文件夹才是你真正用于处理文档的地方。当你要编辑或修改某个文档时,必须对文档实施check out 操作,VSS将该文档从项目中拷贝出来,放入你的工作文件夹。当你修改完毕并check in文件之后,VSS又将文件重新拷贝到数据库中以记录你的修改。

一旦你将文件签出,VSS就开始在你的本地机上创建并管理你的工作文件夹。 每一个用户、每一个项目或每一台微机都可以有自己的工作文件夹。如果Joe在项目$/SpreadSheet和$/WordProcessor上工作,他就有相应的2个不同的工作文件夹。如果Hanna在同样的项目上工作,对于每一个项目她又有自己的工作文件夹。当你为某个项目设置了工作文件夹,你可以用它来放置你该项目中包括子项目在内的所有文件。

2.6“中坚级”的Clearcase (闭源集中式)

Clearcase:IBM旗下Rational公司(2003年被IBM收购)的一款重量级的软件配置管理(SCM, Software Configuration Managemen)工具。与CVS和VSS不同,Clearcase涵盖的范围包括版本控制、建立管理、工作空间管理和过程控制。从最初的软件配置计划,到配置项的确立,从变更控制到版本控制,Clearcase贯穿于整个软件生命周期。 Clearcase支持现有的绝大多数操作系统,但它的安装、配置、使用相对较复杂,并且需要进行团队培训。

ClearCase的核心功能是版本控制,它是对在软件开发进程中一个文件或一个目录发展过程进行追踪的手段。ClearCase对所有文件系统对象(包括文件、目录和链接)增强了版本控制系统功能。可定版本的文件包括源代码、可执行文

8

件、位图文件、需求文档、设计说明、测试计划、和一些ASCII和非ASCII文件。目录的版本记录了整个组织基础资源的发展状况,包括源文件的建立、重新命名、重新构造和删除操作等。 这种版本控制系统提供了先进的版本分支和归并功能用于支持并行开发。 1.控制任何文件的版本

ClearCase可以对每一个软件组件或元件的版本进行维护和控制。ClearCase也可以维护一个非文本文件、目录和工具的版本。正如:它可以管理库文件、编译器、需求文档、 测试包和数据库而不仅仅是源代码。

ClearCase的元件类型可以管理版本内容。用户可以定义自己的元件类型,也可以使用ClearCase中的预定义类型:文本文件、压缩文本文件、文件、压缩文件和二进制增量文件。

ClearCase可以利用增量算法将文本文件存储在一个特殊结构的文件容器中。ClearCase采用标准的压缩技术和增量算法存储一个压缩文本文件。(这比以往的存储形式节省了50%―70%的存储空间。)

这种元件类型文件和压缩文件可以被用于控制任何操作系统文件──比如,可执行程序、程序资源库、结构数据库和结构文档文件。二进制增量文件类型可以随时被用于二进制文件格式。 2.在版本树中组织元件发展的过程

在ClearCase中,元件版本的组织体现在版本树结构中。一个版本书的结构可以按目录结构定制, 还可以包含多层分支和子分支。

在一个典型的开发环境中,很多元件的版本树结构最初仅包含一个分支,即, 元件的版本排列在同一条线型队列中。随着时间的发展,当用户做一些错误修复、代码的组织、一些实验性修改或指定平台的开发时,它们可以给一些相关元件定义子分支,从而脱离主干进行开发。ClearCase可以支持多级的分支操作,还可以给版本或分支命名。

3.对目录和子目录进行版本控制

ClearCase可以对目录和子目录进行版本控制,允许开发者对他们数据的组织发展过程进行追踪。目录版本对一些改变进行控制,如:建立一个新文件、修改文件名、 建立新的子目录或在目录间移动文件等。 4.ClearCase也支持对目录自动进行比较和归并的操作。 5.存储数据在一个可访问的版本对象类中(VOBS)

ClearCase把所有版本控制的数据存放在一个永久、安全的存储区中,这个存储区被称为版本对象类(Version Object Bases),项目团队(或管理者)可以决定它们所需要的VOBs的数量,可以决定什么样的目录或文件需要被维护。VOBs不仅是一个可连接的文件系统而且也是网上的资源──主机可以连接任何

9

数量的VOBs.

ClearCase VOBs的组成模式跟UNIX、Windows NT的文件系统和分布式的数据库系统非常类似。ClearCase采用Raima数据管理机制区维护VOB数据库。当在ClearCase中连接和访问时,VOB象一个标准的软件作为目录树的形式出现在客户面前,包含标准的文件对象:目录、文件、符号链接和硬链接。但事实上,文件系统已经有广泛的版本控制组件:它包含目录元素、目录元素版本、文件元素、文件元素版本、VOB动态链接和VOB硬链接。开发者也可以查看和这些文件系统对象相关的数据。这些数据包括事件记录,建立审核以及用户定义的项如:版本标签和属性。

6.使用常见的检出/编辑/检入范例

ClearCase的命令可以控制元素的变化,确保存储区有序的繁衍并使数据损坏的程度达到最小。ClearCase采用一种检出/编辑后检入的范例,类似于传统的版本控制工具如:RCS和SCCS。ClearCase除了可以进行检出、检入以及非检出操作外,它还可以通过命令设置另外的操作,如:删除版本、建立/删除分枝、可按时间顺序排列或结构排列顺序列出版本历史、比较版本间的差异,并且可以归并并行开发的版本。

当开始对于一个指定的文件进行工作时,该文件具有只读属性──这意味着它不能被编辑或删除。而检出操作可以对该文件的最近版本形成一个可编辑的拷贝。它无须将文件拷贝到另一区域工作。检出的注释可以被提供。当编辑完成后,该文件被检入,于是在版本树中形成一个新的版本并且将可编辑的拷贝删除。为了检验文件的变化,在检入过程中可以填入注释信息。文件一旦被检入,即刻回复到只读状态成为共享数据,可被所有成员使用。

ClearCase支持两种检出,保留以及非保留。保留检出可以保证版本历史形成的正确范围,并且同时只允许一个人做保留检出的操作。非保留检出无须保证建立一个成功的版本,如果多个用户同时对同一元素执行非保留检出,也企图进行检入操作,那么第一个检入操作被允许,而其他用户必须通过归并操作合并它们的结果。

7.丰富的注释信息和版本数据的报表

ClearCase存储了和文件系统对象相关又截然不同的信息类。这些信息实际上并不包含在对象中,它是一些额外数据。这些数据可以由ClearCase产生,也可以由用户自己定义。在VOB数据库中存储了所有的数据。

ClearCase产生的这种数据信息提供了可靠的、面向文件系统的版本注释信息。比如:这些数据可以验证在某一时刻,元素A建立了一个新的版本。用户定义的数据可以用来表达额外的功能──比如:该文件的版本曾被用于构造应用系统的4.31版。

10

五星文库wxphp.com包含总结汇报、外语学习、行业论文、IT计算机、计划方案、考试资料、资格考试、word文档、旅游景点、人文社科以及软件工程课程设计报告-版本控制工具综述等内容。

本文共5页12345