admin管理员组

文章数量:1536472

2024年7月2日发(作者:)

软件配置管理工具 Vss 6.0实用指南

一、版本管理的必要性

如果说70年代的软件危机导致了软件工程思想的诞生和理论体系的发展,那么80~90年

代尤其是90年代软件产业的迅猛发展导致了另一种新思想的产生和实现,这就是软件的版本管

理。

只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是

不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对已完

成编码调试的软件进行全面的测试。在软件开发这个庞大而复杂的过程中,需要涉及到各个方面

的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和

研发者之间。所有的这些交流反馈意见信息都有可能导致对软件的修改,小的可能只是对某个源

文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。在这个工

程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且我们并不能保证不出现错

误的修改,而这样的一个困难局面却又非常现实地摆在项目开发管理者的面前,他/她该如何有

效地解决这些问题,具体地说就是如下一些问题:

1.怎样对研发项目进行整体管理;

2.项目开发小组的成员之间如何以一种有效的机制进行协调;

3.如何进行对小组成员各自承担的子项目的统一管理;

4.如何对研发小组各成员所作的修改进行统一汇总;

5.如何保留修改的轨迹,以便撤销错误的改动;

6.对在研发过程中形成的软件的各个版本如何进行标识,管理及差异识辨等等。

一个非常直接的反应,我们必须要引进一种管理机制,一个版本管理机制,而且是广义上的

版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理。以往的那种被

誉为具有良好编程风格的做法,诸如在对他人的源程序进行修改时注释修改原因,修改人和日期,

如果是多个成员同时进行了修改,那么需要进行及时的人工的差异比较和综合以便形成一个统一

的新版本。这种做法在当前的大型软件的开发中已经越来越没有空间了,可以说是一种以小作坊

的形式来面对软件的社会化大生产,再也不可能行得通了。

其实,版本管理的思想很早就存在于软件开发者的头脑之中,只是以往的认识没有现在人们

所意识到的那样迫切。UNIX的程序开发系统较早就提供了能够进行开发小组中源代码版本管理

的工具,现在的Linux更是提供功能强大的能够跨平台的版本管理器,国外公司的基于Windows

的版本管理器也已经有了比较成熟的产品,国内的研究单位如北京大学计算机系CASE实验室

也在致力于这方面的工作。在众多的成熟产品和试验产品中,这里只将对使用比较广泛,有较大

用户前景且又能较易获得的版本管理器产品Microsoft公司的Visual SourceSafe 6.0进行详细的

介绍,针对普通的研发小组的解决方案,及具体的实现。

二、Visual SourceSafe 6.0(VSS 6.0)简介

VSS 6.0现在是作为Microsoft Visual Studio 6.0这个开发产品家族的一员,如Visual C++

6.0和Visual J++ 6.0一样。

1. VSS的简单工作原理

Microsoft的VSS 6.0解决了软件开发小组长期所面临的版本管理问题,它可能有效地帮助

项目开发组的负责人对项目程序进行管理,将所有的项目源文件(包括各种文件类型)以特有的

方式存入数据库。开发组的成员不能对该数据库中的文件进行直接的修改,而是由该版本管理器

将该项目的源程序或是子项目的源程序拷贝到各个成员自己的工作目录下进行调试和修改,然后

将修改后的项目文件作Checkin提交给VSS,由它进行综合更新。VSS也支持多个项目之间文

件的快速高效的共享。当某个成员向VSS中添加文件时,该文件将会被备份到数据库中,以便

所有的成员都能共享该文件。而且每个成员对所有的项目文件所作的修改都将被记录到数据库中,

从而使得修改的恢复和撤销在任何时刻,任何位置都成为可能。小组的成员可能得到该项目的最

新版本,对它进行修改,并保存一个新的版本。

VSS的项目组织管理使得开发小组的协调变得简单容易且很直观,当一个和一组文件发放

给另一个成员,小组,Web站点或是任何其他的地址,VSS确保他们之间的真正共享及所选的

一组文件的不同版本的安全性。现在,越来越多的开发者可以通过他们的开发环境来访问VSS

的功能。而且VSS可以很容易地于Microsoft Access、Visual Basic、Visual C++、Visual FoxPro

和其他的开发工具集成在一起,一旦VSS集成到开发环境中,就可以象控件一样使用,能够很

好地体现出VSS的易用性和强大功能。

中的几个重要概念

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

首先是项目的概念,所谓的项目是一组存在VSS中的文件(任何类型),可以在项目中或

是项目之间进行文件的添加、删除、编辑和共享。一个项目与操作系统的文件夹有很多的相似之

处,但它更好地支持文件合并、历史和版本控制。所有的文件存在VSS数据库的项目中,开发

组成员不能在VSS中的主备份文件上工作(除了检查和版本比对等特殊情况外)而是VSS为每

个成员在各自的工作目录下提供一个拷贝以供工作。尽管在没有工作目录的情况下也可以查看某

个文件,但如要真正在VSS管理下工作,就必须要创建一个工作目录。

VSS能够维护一个文件的多个版本,包括一个从不同版本之间进行修改的记录。版本控制

包括如下方面:

组内协调—在一般情况下,确保在任何时刻都只有一个成员对某个特定的文件进行修改,这

样可以防止文件被其他成员的修改意外更新。当然,VSS管理员可以改变此缺省设置以允许对

单个文件同时有多个Checkout,并且仍禁止对他人的修改进行覆盖。

版本跟踪—对老版本的源代码和其他文件进行归档和跟踪,而且这些版本能够被重新得到以

便进行bug跟踪或其他目的。

跨平台开发—支持同一代码在跨多个开发平台时的版本控制。

重用或面向对象代码—跟踪哪些程序使用了哪些代码可被重用的模块。

版本控制的涵义在以后的章节中将会得到更进一步的论述。

我们已经知道,VSS提供版本控制和历史服务,以保证一个文件的每个版本都是可恢复的。

VSS用日期/时间戳来记录文件是何时被Checkout或是何时被修改的,它主要有三种方法来跟

踪文件和项目的版本:

版本号:这是由VSS维护的内部数码,用户对它没有控制权。每个文件和项目的每个版本

都有一个版本号,这些版本号总是一个整数且是递增的。

标签:这些是用户赋给某个项目或文件的某个版本的一个字符串,可以是任何格式的长度不

超过31字符的字符串。

日期/时间戳:它给出了一个文件何时最后被修改的信息,或者是一个文件何时被Checkin。

VSS同时支持12小时和24小时的时间格式。

工作目录是用户真正对项目文件进行调试修改的地方,当用户Checkout或提取一个文件时,

VSS将该项拷贝到用户的工作目录下,当用户修改了该文件并将其Checkin或提交时,VSS再

将它从用户的工作目录拷回到VSS的数据库中。在用户作Checkout时,VSS将会自动管理他

的工作目录,诸如创建必要的子目录。而且工作目录可以随时创建或修改。

3. VSS 6.0的一些新增的特征和功能

归档和恢复—在VSS 6.0中这两个操作是在一个用户界面友好的VSS管理员wizard中进

行的,而在以前的版本中,它们只能通过命令行来实现。

移动文件—当用户移动文件时,VSS 6.0自动将该文件共享到一个新的项目中,并在原项目

中将其删除。在新项目中,该文件的属性是共享的。

多个项目之间的差异比较—该功能允许用户在不同的项目之间进行差异比较。

单个文件的展开—在以前的版本中,VSS只能展开一个目录(文件夹),在VSS 6.0中,

同时可以展开一个文件。

快速提取—由于VSS 6.0在性能上的提高,现在的文件提取速度比以往VSS版本的快两倍

左右。

历史信息过滤—VSS 6.0支持查看那些没有标签的文件和项目的历史。

清除临时文件夹选项—该新功能可使用户很方便地清除临时文件夹。

检查外部的超连接—在VSS的较早的版本中,只有内部的超连接和项目内的跳转才得到检

查,VSS 6.0允许用户检查项目之外的超连接和跳转。

创建打开VSS数据库的快捷键—用户可以使用VSS Explorer中该新功能创建一个打开某个

特定VSS数据库的桌面快捷键。

HTML格式的帮助—VSS的以往版本使用的是WinHelp格式。

<>

三、VSS 6.0的解决方案

在对VSS 6.0的工作原理,功能和新增特征有了一个较全面的了解后,我们开始进入到本

节,即如何运用VSS 6.0来实际解决软件开发工程中的版本管理和控制问题,怎样有效地构架

一个系统的解决方案。

首先看一下我们的开发小组所处于的实际情况,最一般的情况是整个项目使用的就是微机环

境,每个开发者在各自的Windows微机下利用Microsoft的VC、VB、VJ等等来开发项目中各

个子项目或子模块,通常这个小组是局域网的一部分或者是一个较为独立的子网,可能配有专门

的服务器。这样的一个开发环境对于实现用VSS 6.0来进行版本控制和管理是非常有利而且是

比较直观的,因为VSS 6.0也需要这个网络环境。

其次是对于项目本身来说的,一个项目经过分析设计后一般都会分成若干个子项目由若干个

开发小组各自负责编码调试,但软件开发的实际情况决定了各个小组之间并不是完全独立的,他

们在很多情况下都需要协调交互和信息反馈,开发过程中的每一步都有可能会导致对前一阶段工

作的修正,因为软件开发很大程度上是一个螺旋式的过程,更不用说小组之内的相互交流了。在

这个不断交互改动的过程中,将可能形成的项目的阶段版本、部分版本和完整版本的数量是可想

而知的,而以往的通常的版本人工管理方法已是不能胜任了。而且还有一个非常重要的方面不可

忽略,这对系统软件的开发尤为明显,即软件的层次结构。一般的做法是在通用的系统软件之上

为多个应用开发相应的应用程序,与此相对照的项目开发组也一般分为系统开发组和各个应用开

发组,应用软件的开发和使用过程中将会反馈回无数的应用本身和系统软件的问题,如果只是针

对每个应用来单独修改更新系统软件版本,这样就不可避免地导致多个系统版本的不一致,这样

对于真正解决系统所存在的问题就显得力不从心了。而VSS 6.0正适合于这种软件的开发体系

结构,可以为各个小组创建自己的项目,而这些项目又从属于一个总的项目,所有的修改都将被

汇总处理以形成一个统一的最新版本。

针对这样最为普通的一个软件开发环境和组织结构,运用VSS 6.0进行版本控制管理的非

常有效而且代价较小的解决方案是:

在一台Windows NT服务器或者是一台较为独立的Windows 98/95 PC上安装VSS 6.0的

服务器端软件,创建一个为该整个项目存放用的数据库,然后在该数据库中创建各个项目和子项

目,并由VSS管理员为小组的每个成员创建一个帐号及他们各自的权限;

在开发小组其他成员的PC上安装VSS的客户端软件,并创建自己的工作目录,这样在软

件的开发过程中,他们只要通过该客户端软件登录到VSS服务器上,Checkout当前要进行工作

的项目或文件,如有修改的在工作结束时将其Checkin提交给VSS服务器进行统一更新。

解决方案如下图所示。

四、VSS6.0服务器的安装

在我们给出整个解决方案后,现在来看一下如何安装VSS服务器。VSS 6.0是Microsoft

Visual Studio 6.0 套件的成员,我们就以这个版本为例进行说明。

第一步,将Visual Studio 6.0 的CD1放入CD-ROM,自动进入安装程序,选择第二项“Server

Applications and Tools(Add Only)”,如图1所示;

第二步,然后在"Server

Setups"的"Server Components"中选择"Visual Source Safe Server",按"Install"按钮后,根据提

示放入CD2,如图2所示;

第三步,根据Installation

Wizard的提示,继续安装过程,选择安装路径,按图3左上角的按钮,系统继续进行安装,直

至提示你重启以使新安装的程序生效,重启计算机。

VSS

6.0服务器的安装比较简单,它既可以安装在Windows NT下,也可以安装在Windows 9x下。

五、VSS 6.0客户端的安装

在VSS 6.0服务器安装完毕后,就可以在VSS管理员的指导下安装客户端的软件。由于我们

是在一个Windows环境的子网内,每台PC客户机均可通过网上邻居来访问VSS服务器。在VSS

管理员为用户指明VSS客户端软件的安装程序“”的位置后,用户可以直接通过资

源管理器“Explorer”在网上邻居中找到该程序,并双击以运行它,如图1所示。

被启动后进入VSS客户端的安装,在如下提示框中输入用户名和工作组名,如图2

所示。

选择VSS的安装路径后,在图3中点击安装图标,进入实际安装步骤,以后的工作将由系统

自动完成。

当系统提示你,

VSS已成功安装,到此所有的安装工作已经完成。

六、VSS6.0服务器的配置和管理

在VSS 6.0服务器安装完毕后,就可以针对开发项目进行VSS服务器的配置和管理,这些

工作均需由VSS管理员来完成。

首先,为整个项目创建一个VSS数据库(在VSS服务器安装时,系统已经创建了一个缺省

数据库Common),启动Visual SourceSafe 6.0 Admin(Start /Programs/Microsoft Visual Studio

6.0/Microsoft Visual SourceSafe/Visual SourceSafe 6.0 Admin),跳出如图1的窗口,点击下

拉菜单Tools中的菜单项,将出现如图2的窗口,选择新数据库的路径,例

如创建MyApp数据库,然后点击OK按钮,系统将完成创建工作。

第二步,为新创建的数据库(例如MyApp)建立用户,首先需要打开该数据库,点击下拉

菜单Users/Open ,然后选择数据库MyApp,打开它,如图3所示。再

选择菜单项,输入用户名和口令,如图4所示。然后依次创建其他的用户。

第三步,在该新建的数据库中创建项目Project。启动Microsoft Visual SourceSafe 6.0

(Start/Programs/Microsoft Visual Studio 6.0/Microsoft Visual SourceSafe/Microsoft Visual

SourceSafe 6.0),出现如图5的窗口,点击下拉菜单File中Open ,

跳出如图6的对话框,选择一个数据库(例如MyApp),双击它或按Open按钮一打开该数据

库;一个项目Project是一组相关的文档或者是一个文件的集合,VSS允许你以任何的层次结构

来存贮和组织你的项目。在VSS数据库中,你可以创建一个或者多个项目。点击菜单File中的

命令,创建一个项目,例如MyProject,如图7所示;创建完项目MyProject

后,需要向MyProject中添加文件,点击File中Add Files命令,将跳出对话框,选择相应文件

或目录,点击Add按钮,将它们添加到MyProject中去,如图8所示。

VSS服务器的配置到此基本上已经完成了,创建了数据库和项目,并为它们建立了相应的

用户,这样用户在客户端的VC等集成开发环境中就可以直接登录到VSS服务器上,进行在VSS

控制管理下的开发工作。

七、在客户端的VC中使用Source Code Control

当VSS服务器端的安装配置工作全部完成,并在客户端也完成了VSS的安装,这样就可启

用VSS来管理控制整个开发小组的源代码和文档的版本管理。本节我们以应用比较广泛的VC++

6.0为例来说明如何坐在客户端运用VSS,以实现所有的开发工作均处于VSS的有效的控制管

理之下。

启动Microsoft Visual C++ 6.0,在VC的集成开发环境中,点击File菜单的Open Workspace

命令,跳出的对话框如图1所示,与没有安装VSS客户端软件的VC有一个明显的区别:在对

话框的底部增加了一项“Open a project from source code control source control”。

点击source control 按钮,将跳出

如图2的登录对话框,输入你的用户名和口令,通过按钮选择你要登录的数据库。选

择一个项目Project,在文本区输入它在本地的工作目录,VSS服务器将在该工作目录下拷贝一

份源代码以供用户开发调试和修改,如图3所示。其他的操作就如同在本地开发一样,将鼠标

移至VC窗口的边框,按右键选上Source Control,就会出现Source Control工具条,如图4

所示。选择Source Control工具条中的相应按钮,可以完成诸如获取某项目文件的最新版本,

向VSS数据库中添加新文件,将修改后的文件Checkin提交给VSS数据库,查看某个项目文

件的历史信息,进行不同版本文件及不同项目之间文件的差异比对,还有共享某个项目或文件。

这样操作起来是不是很轻松呢?!

本文标签: 项目文件版本开发