VSS 2005在电力规划前期评审中的应用

2014-03-22 13:44张旭航
电力与能源 2014年4期
关键词:源代码资料数据库

陈 博,张旭航,曹 炜,武 霄

(1.国网上海市电力公司经济技术研究院,上海 200001;2.上海电力学院,上海 200090)

1 版本控制软件溯源

在20世纪80~90年代,尤其是20世纪90年代软件产业的迅猛发展,导致了软件的版本管理新思想的产生和实现。只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对已完成编码调试的软件进行全面的测试。

在软件开发这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。这些交流反馈信息都有可能导致对软件的修改,可能是对某个源文件中的某个变量的定义改动,也有可能是重新设计程序模块,甚至是整个需求分析变动。在这个工程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且项目开发管理者并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实地摆在面前,该如何有效地解决这些实际问题,例如:①怎样整体管理研发项目;②如何以一种有效的机制进行协调项目开发小组的成员;③如何保留修改的轨迹,以便撤销错误的改动;④如何统一汇总对研发小组各成员所作的修改;⑤如何统一管理小组成员各自承担的子项目;⑥如何进行标识、管理及差异识辨在研发过程中形成的软件的各个版本等。

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

其实,版本管理的思想很早就存在于软件开发者的头脑之中,只是以往的认识没有现在人们所意识到的那样迫切。UNIX的程序开发系统较早提供了能够进行开发小组中源代码版本管理的工具,现在的Linux更是提供功能强大的能够跨平台的版本管理器,国外公司的基于Windows的版本管理器也已经有了比较成熟的产品,国内的研究单位如北京大学计算机系CASE实验室也在致力于这方面的工作。

2 Visual Source Safe 2005简介

2.1 基本概念

VSS(Visual Source Safe)是Visual Studio开发套件中的一员,也是美国微软公司推出的一个工作组级的版本控制软件,它与Visual C++、Visual Basic等开发工具有很强的亲和度。VSS 2005是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。

VSS通过将有关项目文档(包括文本文件、图象文件、二进制文件、声音文件、视屏文件)存入数据库进行项目研发管理工作。客户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS,它的每次改动都会被记录下来,客户可以恢复文件的早期版本,项目组的其他成员也可以看到有关文档的最新版本,并对它们进行修改,VSS也同样会将新的改动记录下来。你还会发现,用VSS来组织管理项目,使得项目组间的沟通与合作更简易而且直观。

VSS 2005版本控制软件具有支持多种语言,支持Unicode,经常提醒你Analyze4、Internet访问等优点。

2.2 工作原理

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

VSS的项目组织管理,使得开发小组的协调变得简单容易而且很直观,当一个和一组文件发送给另一个成员、小组、Web站点或是任何其他的地址,VSS确保他们之间的真正共享及所选的一组文件的不同版本的安全性[2]。

2.3 运行环境

服务器和开发人员的客户机分别装有VSS的服务器和客户端程序。Windows平台下使用VSS开发的典型环境是基于C/S架构的,即开发小组的每个开发者在各自的Windows平台下利用开发工具(比如VC)开发项目中的各个模块,而配有专门的服务器集中控制开发过程中的文档和代码[3]。

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

2.4 不足及补正

VSS 2005的不足是不能查看PDF文件,经过查询资料,可以使用一个补丁文件:VS80-KB943847-X86-INTL,安装之后便可以存储和查看PDF文件了。

3 版本控制

3.1 版本控制的重要性

在软件开发和需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。版本控制是工作组软件开发中的重要方面,它能防止文件意外丢失、允许反追踪到早期版本,并能对版本进行分支、合并和管理。其重要性表现为:一是作为代码仓库,在软件开发中对各个不同版本的源代码和文档进行有效的管理,占用空间小,方便获得各个版本代码和文档;二是对源代码进行有效协调的访问(不同的版本控制软件采取不同的协调策略)。

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

1)组内协调 在一般情况下,确保在任何时刻都只有1个成员对某个特定的文件进行修改,这样可以防止文件被其他成员的修改意外更新。当然,VSS管理员可以改变此缺省设置,用以允许对单个文件同时有多个Check out,并且仍禁止对他人的修改进行覆盖。

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

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

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

3.2 版本跟踪方式

VSS用日期/时间戳来记录文件是何时被Check out,或是何时被修改的,采用3种方法来跟踪文件和项目的版本。

1)版本号 客户对它没有控制权,版本号是由VSS维护的内部数码,每个文件和项目的每个版本都有一个版本号,并且这些版本号总是1个整数而且是递增的。

2)标签 任何格式的长度不超过31个字符的字符串。这是客户赋给某个项目或文件的某个版本的1个字符串。

3)日期/时间戳 给出了1个文件何时最后被修改的信息,或者是1个文件何时被Check in。VSS同时支持12h和24h的时间格式。

在工具栏当中可以看到Show Differences按钮与Show History按钮,它们也是很重要的版本控制功能。可以在一个指定文件的右键功能菜单当中找到对应的菜单项。

Show Differences可以查到本地文件与存在VSS数据库当中的文件(最后1个版本)的异同点,如果没有按照Check in与Check Out模式工作的话,一旦发现有不同的地方,可以使用Get Last Version将历史版本重新从服务器数据库中得到最新的版本。

而Show History可以对文件的历次修改给出1个对应表,看到某选定文件在VSS数据库中共有几个版本,我们需要哪个版本,就可以选中哪个版本,然后单击按钮“Get”即可获得。同时,可以使用Rollback按钮将版本进行回滚。这样的话,可以很方便的对版本进行管理[4]。

3.3 版本管理软件的比较

常见的版本管理软件有3种,VSS、CVS、SVN的特点比较如下[5]。

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

2)CVS 全称Concurrent Versions System,并行版本控制系统,是开放源代码软件世界的一个伟大杰作。由于CVS功能强大,跨平台,支持开发版本控制,而且免费,所以在全球中小型软件企业中得到了广泛使用。CVS最大的遗憾是缺少相应的技术支持,许多问题的解决需要自已寻找资料,甚至是研究源代码。CVS是一个典型的服务器/客户端软件,有UNIX版本的CVS、Linux版本的CVS和Windows版本的CVS。CVS支持远程管理,项目组分布开发时一般都采用CVS。

3)SVN 全称Subversion,采用了更先进的分支管理系统,它的设计目标是取代CVS,CVS纵然易用,但也有一些与生俱来的缺点,比如CVS不支持文件改名,只对文件控制版本而没有针对目录的管理等。之后CVS的创始人之一在其现任公司的资助下开发了SVN,用以针对CVS的一些弱点进行改进。

CVS对开源事业有贡献,但CVS的命令行操作着实让一些使用者头疼。在对1个特定版本的文档Check in的时候,需要输入一长串的路径名和文件名。在操作易用性上与CVS形成对比的是微软家族的VSS。作为微软的产品,在图形界面化操作上自不用多言,但VSS只能适用于小团队的开发工作。VSS是很好的入门级工具,但它的一些功能太过于“入门”,在验证密码、保存密码这些基本功能上处理的不尽人意。CVS是开源的,免费的,它的理想替代者是SVN。

SVN针对CVS的问题作了改进,命令的设计更为合理,对二进制文档和目录数据加强了控制能力,并且吸收了VSS的lock-modify-update(release)的模式和modify-merge模式的优点,在一定程度上都支持并作了优化,没有提高使用的复杂度。由于SVN的设计结构很好,所以很容易为它开发客户端,还有Web模式的,可以远程管理,支持RSS更改订阅。

4 VSS 2005与VSS 6.0比较

4.1 VSS 6.0新增功能

1)归档和恢复 在VSS 6.0中,这两个操作是在一个客户界面友好的VSS管理员wizard中进行的,而在以前的版本中,它们只能通过命令行来实现。

2)快速提取 VSS 6.0现在的文件提取速度比以往VSS版本的快2倍左右。

3)移动文件 当客户移动文件时,VSS 6.0自动将该文件共享到一个新的项目中,并在原项目中将其删除。在新项目中,该文件的属性是共享的。

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

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

6)多个项目之间的差异比较 VSS 6.0允许不同的项目之间进行差异比较。

7)检查外部的超连接 VSS 6.0允许客户检查项目之外的超连接和跳转。在VSS较早的版本中,只有内部的超连接和项目内的跳转才得到检查。

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

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

10)HTML格式的帮助 VSS以往版本使用的是Win Help格式[2]。

4.2 VSS 2005与VSS 6.0比较

VSS 6.0相比VSS 2005,只有打开配置库的功能,没有新建配置库的功能。VSS传统模式:Lock-Modify-Unlock Model。即1个人Check out某文件后,其他人不允许同时Check out该文件,只能进行串行开发。

VSS 2005较VSS 6.0增加一种工作模式:Copy-Modify-Merge Model,即允许多人同时Check out同一文件,支持并行开发,Check in时做合并工作。之所以说此选择非常关键,是因为一旦做出选择,创建好数据库后,就不能再改变数据库的工作模式了。数据库存放路径,所选择路径的目录在以后必须共享给需要访问此配置库的客户。一般在此之前,需要对服务器的空间做一个规划,避免数据库建立后,磁盘空间不够影响使用。

5 在电力规划前期评审中的应用

VSS作为一种存储工具,在电力项目规划前期评审中的应用中起到重要作用。上海市电力公司经研院规评中心每年有评审项目,从项目资料到评审过程,从评审意见到项目批复,还有数不清的规程和规范等,查找这些资料更是困难重重,使用VSS 2005建立的一套数据系统,规范了评审过程和资料查阅等。

按照电力规划前期评审中项目资料类型,评审资料通过VSS 2005平台分成了审前资料、审后资料、会议资料、评审意见资料、前期文件资料等五类资料。其中,审前资料包括审前技术报告、审前计经报告等;审后资料包括审后技术报告、审后计经报告;会议资料包括会议通知、签到单等;评审意见资料包括评审前意见、评审后意见等;前期文件资料包括评审前的设计公司资料等。

在建立以VSS 2005为平台的资料存储系统中,首先通过时间为顺序,建立了×年的项目前期评审数据库,可以清晰的看出×年×月×日的所有项目,打开某个项目可以看到所有有关此项目的资料(包括会议资料、评审意见、前期文件、审前资料、审后资料等),快速提取所需资料内容,高速高效。其次,VSS 2005系统对项目进行详细的分类,比如项目性质(基建、技改)、项目实施单位(市南、市北等)、项目内容(初设、可研)。在每个项目的技术报告标题中都做了标注和分类,利于对各个类型的文件进行统一查找。

VSS不仅能方便存储、方便快速提取,而且具有可靠性、保密性,大大提高了在电力规划前期评审中资料存储查询的效率。用VSS来组织管理电力规划前期评审中项目,使得项目组内的沟通与合作更简易和直观。

6 结语

VSS 2005作为一种源代码控制系统,提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。用VSS来组织管理项目,使得项目组内的沟通与合作更简易、更直观。在版本控制管理中除了使用VSS,还可以使用CVS以及SVN版本控制系统。如果有服务器Linux系统,则CVS,SVN都可以选择。如果.net用平台开发,VSS无疑是首选,并且操作简单易于掌握。VSS 2005在电力规划前期评审中起到重要作用,可以安全方便存储,快速高效提取。

[1]熊刚强.基于VSS的VFP项目的版本控制解决方案[J].广西民族学院学报(自然科学版),2006,12(2):87-90.

[2]周咏梅,杨新平.版本管理及Visual Source Safe 6.0的使用[J].华南金融电脑维护与管理,2003,(1):64-67.

[3]叶文胜.浅述VSS服务器的安装和配置[J].现代商贸工业,2007,19(8):187-188.

[4]龚剑明.基于VSS管理的ASP.net在电子政务中的开发[J].计算机与数字工程,2005,33(12):102-103.

[5]张光建.VSS软件开发中的版本控制[J].电脑学习,2011,(1):44-45.

猜你喜欢
源代码资料数据库
基于TXL的源代码插桩技术研究
Party Time
PAIRS & TWOS
JUST A THOUGHT
软件源代码非公知性司法鉴定方法探析
基于语法和语义结合的源代码精确搜索方法
数据库
数据库
数据库
揭秘龙湖产品“源代码”