UML软件工程组织

配置管理双枪将VSS+SOS
作者:关河 希赛网

说起VSS,接触过的人应该不少。尤其是用用VC和VB做开发的人,绝大多数人应该都接触过和使用过VSS。VSS小巧精干,和VS开发工具集成极为紧密,就算不使用专门的配置服务器,直接在自己的开发用机上安装一个VSS,也能在代码管理方面方便不少。SOS在上一章中已经做了介绍,这一章将详细介绍之。

VSS概念

也许正因为VSS简单易用,在大多数人眼里,VSS似乎都只是一个玩具,难登大雅之堂,最多能管管自己的代码,要用团队开发中,那似乎是不可能的。刚接触VSS时,我也是抱着差不多的想法,觉得要用VSS作为一个较大的项目的配置管理工具完全不可能,但随着对VSS研究的深入,加上在工作中也使用了其它一些配置管理工具,如CVS、ClearCase、CCC harvest等工具,反过来比较,反而觉得VSS有它独到的地方。关于VSS和其他配置工具的比较,在google上搜索的话应该能找到一大堆,我这里给出几个对我来说印象最深刻的VSS的优势:

1、 VSS操作使用简单;要在配置管理工具中评选“最平易近人奖”,那一定非VSS莫属。VSS中包含了配置管理需要的全部操作,但应用起来却非常简单,首先是全部操作都可以通过GUI完成,如Check In/Check Out操作、Get Latest等基本操作;Label、Share、Branch、Merge等高级操作;其次是VSS和开发环境集成紧密,在开发环境的IDE中就可以方便地完成操作;

2、 VSS对硬件配置要求不高;作为一个工作组级别的配置管理工具,在我们的项目中,安装VSS的配置服务器是一台P4 2.2G/512M RAM/30G×4 Disk的HP PC服务器,这样的条件下VSS运行已经足够稳定和快速,相比起CC和CCC harvest的要求,这部分的投资是很小的;如果再考虑到CC和CCC都运行在Unix平台上需要的维护费用,当然是VSS更加划算了;

3、 VSS几乎是免费的;只要购买了VS开发工具,就能免费使用VSS;

4、 VSS备份/恢复非常简单;只需要通过拷贝——覆盖就能完成VSS的备份/恢复工作,你说简不简单?:)

5、 有良好的可扩展性;通过VSS的自动化接口(Automation),可以自己写程序来完成对VSS库的访问,也正是基于这点,目前市面上已有一些VSS的扩展工具出现,我们在本章要讲的就是其中之一——Sourcegear的SOS。

说了这么多优点,当然不是说VSS就只有优点,和其他的配置管理软件比起来,VSS也有一些不足之处:主要表现在以下几点:

1、 缺乏对Unix的支持(没有Unix上的客户端或者服务器,这是微软的一贯作风);

2、 不支持远程访问方式(只能通过第三方的扩展工具实现);

3、 支持的配置数据库大小建议不超过5G,因此需要良好地规划备份等工作;

关于VSS的操作和应用,建议在网上找找VSS的教程,写得比较详细的有不少,都可以参考。在这里我只是非常概括地介绍一些VSS的基本概念:
Project:VSS中类似于文件夹的概念,一个Project可以包含多个File,同时Project也是VSS中权限分配的最小单位,一个Project下可以包括其他Project;

File:VSS中的最小管理单位,VSS中的每个File对象对应操作系统上的一个文件,多个File可以属于一个Project;

Working Folder:和VSS的Project对应的本地文件夹。Working Folder是Get到的Project和File的存放目录,同时也是执行Check In/Check Out操作时的缓存文件夹;

Get (Latest):Get操作可以获取指定的Project和File的某个版本,常用操作是Get Latest操作,获取Project和File的最新版本;

Version:对VSS来说,一次Check In操作就为被Check In的Project或者File增加了一个版本(在文件没有修改的情况下,Check In操作不生成新的版本)。VSS中的File版本从1开始编号,每次新版本在原有版本上加1;Project的版本没有编号;

Label:Label是配置管理中常用的一个操作,Label可以作为配置项某个状态的标识;

Share:Share可以用于协作开发的模式,通过Share,可以在两个或多个不同的Project之间共享下层的Project或是File,对其中一个位置的File进行的修改会反映到其他位置的File(类似于Unix的ln的方式);

Branch/Merge:Branch和Merge可以用于并行开发的过程。

SOS(SourceOffSite)软件介绍

接下来,我们重点介绍SOS软件,包括软件的安装、配置和使用。

SOS软件的安装

SOS软件分为服务端和客户端两个部分,客户端运行在配置管理服务器上,客户端运行在需要访问配置库的客户机上。以下以SOS 3.5.3标准版的SOS为例,说明该软件的安装、配置和使用。

服务端的安装和设置

SOS可以从Sourcegear的网站上下载试用,免费版本可以试用30天,允许10个用户,目前最新版本是4.0。不过为了解决SOS中的中文问题,建议大家从华军软件园中找到中文SOS进行安装(所谓的中文SOS是国内的高手修改了SOS 3.53程序使其支持中文)。

上图是中文SOS安装时的安装界面,选择安装目录等,一路Next,很容易就安装完成了。安装完成后,系统在“开始”菜单中生成了中文SOS的相关菜单项目。

下图是安装完成中文SOS之后生成的菜单:

安装完成后,需要对SOS进行设置。选择中文SOS菜单的“服务器管理”进入设置界面:

“System Info”页面显示的是SOS的概要信息;

“General Setting”页包含了重要的设置信息,选中“use unsecure port”表示允许使用非加密模式进行数据传输,端口号在后面的编辑框中设置;选中“use secure port”表示允许使用加密模式进行数据传输,端口号在后面的编辑框设置。“Version 2.0 Compatibility”用来选择加密模式,一般选择128bit模式即可。在“Logging”选项中,选择日志的记录方式;最后的“Idle Connections”,如果选中的话,在指定时间内没有数据传输的话,连接就会自动断开。

“Serial Number”页面用来管理SOS的license。通过Add…按钮可以增加新的Serial Number。SOS中可以添加多个Serial Number。

“Databases”页面用来添加SOS管理的VSS数据库。点击Add…按钮可以添加数据库,添加对话框的上一个框填入VSS库的ini文件所在路径,下一个是数据库的别名,可以任意设置。SOS可以同时管理多个数据库。

“Users”页面输入SOS中有效的用户和使用规则,注意,这里的用户和VSS的用户没有关系,VSS用户和SOS用户的关联在下面的“User Keys”页面中设置。要说明的是规则的描述:“Users”中的一行对应一个规则,每行的开头是规则的编号,第二个字段是用户名,第三个字段是允许访问的网络段,第四个字段(取值为0、1、2)是控制访问允许以及访问是否使用加密方式的描述(0表示部允许访问;1表示要求加密访问;2表示允许使用加密或者不加密方式访问)。

例如,对第一行“0000 admin 192.168.3.0/24 1”表示这是第一个规则,规则内容是允许admin用户在192.168.3.0/24的网段上访问SOS服务器。最后的1表示要求使用加密方式访问。

这里要说明的是“用户”的概念。SOS没有自己的用户概念,SOS中的用户通过用户名称和VSS中的用户一一对应。

“User Keys”页面用来生成客户端访问控制的Key文件:

使用“Add Key…”按钮可以弹出“Add User Key”的对话框。该对话框的第一个输入框要求输入要增加的用户在VSS中对应的用户名;第二个输入框要求输入SOS服务器的IP地址,例如“202.100.68.88”,在局域网中可以设置为“192.168.1.1”;(注意,如果配置管理服务器同时具有局域网和广域网的IP地址,并且用户需要从局域网和广域网都可以访问SOS,则对同一个用户需要两个不同的Key文件。在我们的实际工作中,我们只使用SOS进行Internet上的访问,在局域网内还是使用VSS,因此没有这个问题)。下面的Expiration要求输入用户的过期有效时间期限,选择“Key Never Expired”允许用户永不过期。

输入完相应信息后,点击“OK”确认生成用户Key文件。生成的用户Key文件保存在SOS安装目录下,文件名为 [用户名].iky,注意保留此文件,SOS客户端在启动时需要首先导入一个key文件。

“Web Project”页面用于设置Web Project的发布路径:

在第一个编辑框中填入该工程在VSS中的路径,例如“$/WebProject1/test”,在下面的编辑框中输入发布的路径,例如“d:\temp”。发布路径也可以是在其他机器上的网络路径。

“Debug”页面是两个调试级别的选项:

这两个选项的具体含义在SOS的Manual中也没有明确提到,我们在实际运用中也没有发现该选项的具体作用,建议不选取。

“Excluded File Types”页面设置不允许添加到VSS库中的文件类型:

添加的条目是文件后缀,具有在列表中的后缀的文件都不能被添加到VSS库中。

“Pin Support”页面用于设置是否允许PIN操作:

如果允许“PIN”操作,还需要指定ss.exe文件所在的目录。

设置完成后,需要重新启动SOS服务端,具体方法是在“服务”中启动相应服务:启动服务完成后,服务端的安装设置就已经完成了,接下来我们介绍SOS客户端的安装和使用。

SOS客户端的安装和使用

SOS的客户端分为Windows版本、Solaris版本和Linux版本。Windows版本的安装非常简单,直接执行安装程序就可以顺利安装。Solaris版本的SOS客户端以tar形式发布,首先在Solaris上安装GTK和GLIB,然后展开安装程序到任意目录即可。对Linux版本的SOS客户端,也需要首先安装GTK和GLIB,然后展开相应tar包到任意目录即可。

Solaris、Linux和Windows版本的SOS客户端运行界面都非常类似,下面以Windows版本为例说明其使用。

第一次运行SOS客户端时,系统会弹出一个对话框要求输入服务器和端口号。这时用“Cancel”按钮取消,选择菜单项的“Tools”——“Import Encryption Key…”,导入服务端生成的Key文件:

导入完成后,选择菜单项的“File”——“Connect to Server…”,输入服务器IP地址和端口,如果连接成功,系统会给出可以连接的数据库列表,可以从列表中选择合适的数据库进行连接访问。

连接成功后,显示的主界面和VSS的基本一致,SOS的操作方式和VSS的也一样,具体可以参见VSS的文档。

下图是SOS的主界面:

当然,SOS在操作上也有一些和VSS不同的地方,下面列出这些不同点:

1、 缺省设置下,SOS中每次登录不会主动刷新工程树和文件列表,需要用工具条上的刷新按钮进行刷新;

2、 SOS的“Search”功能较VSS弱,只能查找Check Out的文件;

3、 SOS的Option设置项目很多,大部分都是SOS增加的为适应远程连接的设置项:

【小结】本章介绍了VSS、SOS的使用,重点是SOS的安装和使用方法。SOS在使用上其实还有很多小技巧,在此不能一一列举,在sourcegear的网站上都能找到相关的资料。


版权所有:UML软件工程组织