分享
 
 
 

版本管理器VisualSourceSafe6.0实用指南

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

版本管理器VisualSourceSafe6.0实用指南

一、版本管理的必要性

如果说70年代的软件危机导致了软件工程思想的诞生和理论体系的发展,那 么80~90年代尤其是90年代软件产业的迅猛发展导致了另一种新思想的产生和实 现,这就是软件的版本管理。

只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难 以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维 护,并有专门的测试小组对已完成编码调试的软件进行全面的测试。在软件开发 这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅 是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。所 有的这些交流反馈意见信息都有可能导致对软件的修改,小的可能只是对某个源 文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析 变动。在这个工程中,由于软件开发所固有的特征,可能会形成众多的软件版本 ,而且我们并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实 地摆在项目开发管理者的面前,他/她该如何有效地解决这些问题,具体地说就是 如下一些问题:

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

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

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

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

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

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

一个非常直接的反应,我们必须要引进一种管理机制,一个版本管理机制, 而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整 个项目进行管理。以往的那种被誉为具有良好编程风格的做法,诸如在对他人的 源程序进行修改时注释修改原因,修改人和日期,如果是多个成员同时进行了修 改,那么需要进行及时的人工的差异比较和综合以便形成一个统一的新版本。这 种做法在当前的大型软件的开发中已经越来越没有空间了,可以说是一种以小作 坊的形式来面对软件的社会化大生产,再也不可能行得通了。

其实,版本管理的思想很早就存在于软件开发者的头脑之中,只是以往的认 识没有现在人们所意识到的那样迫切。U NIX的程序开发系统较早就提供了能够进 行开发小组中源代码版本管理的工具,现在的Linux更是提供功能强大的能够跨平 台的版本管理器,国外公司的基于Windows的版本管理器也已经有了比较成熟的产 品,国内的研究单位如北京大学计算机系CASE实验室也在致力于这方面的工作。 在众多的成熟产品和试验产品中,这里只将对使用比较广泛,有较大用户前景且 又能较易获得的版本管理器产品Microsoft公司的Visual SourceSafe6.0进行详细 的介绍,针对普通的研发小组的解决方案,及具体的实现。

二、Visual SourceSafe6.0(VSS6.0)简介

VSS6.0现在是作为Microsoft Visual Studio6.0这个开发产品家族的一员, 如V isual C++6.0和Visual J++6.0一样。

1. VSS的简单工作原理

Microsoft的VSS6.0解决了软件开发小组长期所面临的版本管理问题,它可能 有效地帮助项目开发组的负责人对项目程序进行管理,将所有的项目源文件(包 括各种文件类型)以特有的方式存入数据库。开发组的成员不能对该数据库中的 文件进行直接的修改,而是由该版本管理器将该项目的源程序或是子项目的源程 序拷贝到各个成员自己的工作目录下进行调试和修改,然后将修改后的项目文件 作Checkin提交给VSS,由它进行综合更新。VSS也支持多个项目之间文件的快速高 效的共享。当某个成员向VSS中添加文件时,该文件将会被备份到数据库中,以便 所有的成员都能共享该文件。而且每个成员对所有的项目文件所作的修改都将被 记录到数据库中,从而使得修改的恢复和撤销在任何时刻,任何位置都成为可能 。小组的成员可能得到该项目的最新版本,对它进行修改,并保存一个新的版本 。

VSS的项目组织管理使得开发小组的协调变得简单容易且很直观,当一个和一 组文件发放给另一个成员,小组,W eb站点或是任何其他的地址,VSS确保他们之 间的真正共享及所选的一组文件的不同版本的安全性。现在,越来越多的开发者 可以通过他们的开发环境来访问VSS的功能。而且VSS可以很容易地于Microsoft Access、 Vi sual Basic、 Visual C++、Visual FoxPro和其他的开发工具集成 在一起,一旦VSS 集成到开发环境中,就可以象控件一样使用,能够很好地体现 出VSS的易用性和强大功能。

2.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. VSS6.0的一些新增的特征和功能

归档和恢复-在VSS6.0中这两个操作是在一个用户界面友好的VSS管理员wiza rd中进行的,而在以前的版本中,它们只能通过命令行来实现。

移动文件-当用户移动文件时,VSS6.0自动将该文件共享到一个新的项目中, 并在原项目中将其删除。在新项目中,该文件的属性是共享的。

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

单个文件的展开-在以前的版本中,VSS只能展开一个目录(文件夹),在VS S6.0中,同时可以展开一个文件。

快速提取-由于VSS6.0在性能上的提高,现在的文件提取速度比以往VSS版本 的快两倍左右。

历史信息过滤-VSS6.0支持查看那些没有标签的文件和项目的历史。

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

检查外部的超连接-在VSS的较早的版本中,只有内部的超连接和项目内的跳 转才得到检查,VSS6.0允许用户检查项目之外的超连接和跳转。

创建打开VSS数据库的快捷键-用户可以使用VSS Explorer中该新功能创建一 个打开某个特定VSS 数据库的桌面快捷键。

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

三、VSS6.0的解决方案

在对VSS6.0的工作原理,功能和新增特征有了一个较全面的了解后,我们开 始进入到本节,即如何运用VSS 6.0来实际解决软件开发工程中的版本管理和控制 问题,怎样有效地构架一个系统的解决方案。

首先看一下我们的开发小组所处于的实际情况,最一般的情况是整个项目使 用的就是微机环境,每个开发者在各自的 Windows微机下利用Microsoft的VC、V B、VJ等等来开发项目中各个子项目或子模块,通常这个小组是局域网的一部分或 者是一个较为独立的子网,可能配有专门的服务器。这样的一个开发环境对于实 现用VSS6.0来进行版本控制和管理是非常有利而且是比较直观的,因为VSS6.0也 需要这个网络环境。

其次是对于项目本身来说的,一个项目经过分析设计后一般都会分成若干个 子项目由若干个开发小组各自负责编码调试,但软件开发的实际情况决定了各个 小组之间并不是完全独立的,他们在很多情况下都需要协调交互和信息反馈,开 发过程中的每一步都有可能会导致对前一阶段工作的修正,因为软件开发很大程 度上是一个螺旋式的过程,更不用说小组之内的相互交流了。在这个不断交互改 动的过程中,将可能形成的项目的阶段版本、部分版本和完整版本的数量是可想 而知的,而以往的通常的版本人工管理方法已是不能胜任了。而且还有一个非常 重要的方面不可忽略,这对系统软件的开发尤为明显,即软件的层次结构。一般 的做法是在通用的系统软件之上为多个应用开发相应的应用程序,与此相对照的 项目开发组也一般分为系统开发组和各个应用开发组,应用软件的开发和使用过 程中将会反馈回无数的应用本身和系统软件的问题,如果只是针对每个应用来单 独修改更新系统软件版本,这样就不可避免地导致多个系统版本的不一致,这样 对于真正解决系统所存在的问题就显得力不从心了。而VSS6.0正适合于这种软件 的开发体系结构,可以为各个小组创建自己的项目,而这些项目又从属于一个总 的项目,所有的修改都将被汇总处理以形成一个统一的最新版本。

针对这样最为普通的一个软件开发环境和组织结构,运用VSS6.0进行版本控 制管理的非常有效而且代价较小的解决方案是:

在一台Windows NT服务器或者是一台较为独立的Windows98/95 PC上安装VSS 6.0的服务器端软件,创建一个为该整个项目存放用的数据库,然后在该数据库中 创建各个项目和子项目,并由VSS管理员为小组的每个成员创建一个帐号及他们各 自的权限;

在开发小组其他成员的PC上安装VSS的客户端软件,并创建自己的工作目录, 这样在软件的开发过程中,他们只要通过该客户端软件登录到VSS服务器上,Che ckout当前要进行工作的项目或文件,如有修改的在工作结束时将其 Checkin提交 给VSS服务器进行统一更新。

解决方案如图1所示。

四、VSS6.0服务器的安装

在我们给出整个解决方案后,现在来看一下如何安装VSS服务器。VSS6.0是M icrosoft Visu al Studio6.0套件的成员,我们就以这个版本为例进行说明。

第一步,将Visual Studio6.0的CD1放入CD-ROM,自动进入安装程序,选择第 二项“Se rver Applications and Tools(Add Only)”,如图2所示;

第二步,然后在“Server Setups”的“Server Components”中选择“Visu a l Source Safe Server”,按“Install”按钮后,根据提示放入CD2,如图3所 示;

第三步,根据Installation Wizard的提示,继续安装过程,选择安装路径, 按图4左上角的按钮,系统继续进行安装,直至提示你重启以使新安装的程序生效 ,重启计算机。

VSS6.0服务器的安装比较简单,它既可以安装在Windows NT下,也可以安装 在Windows9x 下。

五、VSS6.0客户端的安装

在VSS6.0服务器安装完毕后,就可以在VSS管理员的指导下安装客户端的软件 。由于我们是在一个Wind ows环境的子网内,每台PC客户机均可通过网上邻居来 访问VSS服务器。在VSS管理员为用户指明VSS客户端软件的安装程序“Netsetup. exe”的位置后,用户可以直接通过资源管理器“Explorer”在网上邻居中找到该 程序,并双击以运行它,如图5所示。

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

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

当系统提示你,VSS已成功安装,到此所有的安装工作已经完成。

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

在VSS6.0服务器安装完毕后,就可以针对开发项目进行VSS服务器的配置和管 理,这些工作均需由VSS管理员来完成。

首先,为整个项目创建一个VSS数据库(在VSS服务器安装时,系统已经创建 了一个缺省数据库Common),启动Visual SourceSafe6.0 Admin(Start/Progra ms/Microsoft Visual Studio6.0/Microsoft Visual SourceSafe/Visual Sou r ceSafe6.0 Admin),跳出如图8的窗口,点击下拉菜单Tools中的Create Databa se ...菜单项,将出现如图9的窗口,选择新数据库的路径,例如创建MyApp数据 库,然后点击OK按钮,系统将完成创建工作。

第二步,为新创建的数据库(例如MyApp)建立用户,首先需要打开该数据库 ,点击下拉菜单Users/Op en SourceSafe Database...,然后选择数据库MyApp, 打开它,如图10所示。再选择菜单项Add User...,输入用户名和口令,如图11所 示。然后依次创建其他的用户。

第三步,在该新建的数据库中创建项目Project。启动Microsoft Visual So urceS afe6.0(Start/Programs/Microsoft Visual Studio6.0/Micros oft Vis ual SourceSafe/Microsoft Visual SourceSafe6.0),出现如图12的窗口,点击 下拉菜单File中Open SourceSafe Database...,跳出如图13的对话框,选择一个 数据库(例如MyApp),双击它或按Open按钮一打开该数据库;一个项目Project 是一组相关的文档或者是一个文件的集合,VSS允许你以任何的层次结构来存贮和 组织你的项目。在VSS数据库中,你可以创建一个或者多个项目。点击菜单File中 的命令Create Project...,创建一个项目,例如MyProjec t,如图14所示;创建 完项目MyProject后,需要向MyProject中添加文件,点击File中Add F iles命令 ,将跳出对话框,选择相应文件或目录,点击Add按钮,将它们添加到MyProject 中去,如图15所示。

VSS服务器的配置到此基本上已经完成了,创建了数据库和项目,并为它们建 立了相应的用户,这样用户在客户端的VC等集成开发环境中就可以直接登录到VS S服务器上,进行在VSS控制管理下的开发工作。

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

当VSS服务器端的安装配置工作全部完成,并在客户端也完成了VSS的安装, 这样就可启用VSS来管理控制整个开发小组的源代码和文档的版本管理。本节我们 以应用比较广泛的VC++6.0为例来说明如何坐在客户端运用VSS,以实现所有的开 发工作均处于VSS的有效的控制管理之下。

启动Microsoft Visual C++6.0,在VC的集成开发环境中,点击File菜单的O pen Workspace命令,跳出的对话框如图16所示,与没有安装VSS客户端软件的VC 有一个明显的区别:在对话框的底部增加了一项“Open a project from source

code control source control”。

点击source control按钮,将跳出如图17的登录对话框,输入你的用户名和 口令,通过Brows e...按钮选择你要登录的数据库。选择一个项目Project,在文 本区输入它在本地的工作目录,VSS服务器将在该工作目录下拷贝一份源代码以供 用户开发调试和修改,如图18所示。其他的操作就如同在本地开发一样,将鼠标 移至VC 窗口的边框,按右键选上Source Control,就会出现Source Control工具 条,如图19所示。选择Source Control工具条中的相应按钮,可以完成诸如获取 某项目文件的最新版本,向VSS数据库中添加新文件,将修改后的文件Checkin提 交给VSS数据库,查看某个项目文件的历史信息,进行不同版本文件及不同项目之 间文件的差异比对,还有共享某个项目或文件。这样操作起来是不是很轻松呢? !

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有