怎样选择配置管理工具
面对这些形形色色,各有千秋的配置管理工具,怎样依据组织特点、开发团队须要,选择切合适用的工具呢?笔者就结合工作实践中的经验与大家做一些交流与探讨。
配置管理工具的选择所需考虑的因素大体包含下面几个因素:
功能是否符合实际需求?是否符合团队特点?性能是否惬意?费用能否够接受?售后服务怎样?接下来,我们就这几方面逐一深入地探讨:
1)功能是否符合实际需求,是否符合团队特点
工具就是用来帮助您解决这个问题的,因此功能是否符合实际需求是最重要的推断因素。而大多数主流配置管理工具的基本功能都能够满足,因此主要须要推断下面几个因素:
并行开发支持
在团队协作开发过程中,有两种基本的模式:集体代码权和个体代码权。採用集体代码权模式进行开发时,一段代码可能同一时候会被多个开发者同一时候改动;而採用个体代码权模式进行开发时,每一段代码都始终被一个开发者独享,别人须要改动时也会通过该开发者完毕。
而配置管理软件针对这一情况,也採用了不同的策略:Copy-Modify-Merge(拷贝、改动、合并 ) 的并行开发模式、Check out-Modify-Check in(签出、改动、签入)的独占开发模式。在并行开发模式下,开发者能够并行开发、更改代码, Firefly会自己主动检測到代码冲突,并自己主动合并,或提示开发者手动解决。
表一、并行开发支持比較表
工具名称
说明
ClearCase
Copy-Modify-Merge 模式
Firefly
Copy-Modify-Merge 模式
CVS
Copy-Modify-Merge 模式
PVCS
Check out-Modify-Check in 模式
VSS
Check out-Modify-Check in 模式
异地开发支持
假设你的开发团队分布在不同的开发地点,就须要对工具的异地开发功能进行细致的评估了。大多数工具都提供基于 Web的界面,用户能够通过浏览器执行配置管理的相关操作,并且有些工具就通过这样的方法来实现对异地开发的支持。
这样的实现方法有太多的局限性,比如网络(Internet)连接带宽的限制、防火墙以及安全问题等。真正意义上的异地开发支持,是指在不同的开发地点建立各自的存储库,通过工具提供同步功能自己主动或手动同步。这样做的优点是与网络无关,即便各个开发地点之间没有实时连通的网络,也能够通过 E-Mail 附件等其他方式将同步包发给对方,实现手动的同步。
表二异地开发支持比較表
工具名称
说明
ClearCase
提供MultiSite 模块,通过自己主动或手动同步位于不同开发地点的存储库的方式,支持异地开发
Firefly
提供ServerSync 模块,通过自己主动或手动同步位于不同开发地点的存储库的方式,支持异地开发
CVS
无专门支持的模块
PVCS
无专门支持的模块
VSS
无专门支持的模块
值得说明的是,在不同开发点建立各自存储库的方式,主要适用于两个或两个以上位于不同地点的开发团队协作开发的情况。假设仅是採用虚拟团队合作的方式,开发者以个体的形式散落在不同地方,则更适合通过 Internet 直接操作远程的配置管理server。
跨平台开发支持
假设企业须要从事多个不同平台下的开发工作,就须要配置管理工具能够对跨平台开发提供支持,否则势必会给开发、測试、公布等各个环节带来不便,将使大量的时间被浪费于代码的手工上传、下载中。
表三跨平台开发支持比較表
工具名称
说明
ClearCase
支持常见的平台
Firefly
软件本身基于Java开发,可在 Windows、Linux、 Solaris、HP-UX、 AIX等常见平台上使用,平台之间的移植也非常方便
CVS
支持差点儿全部的操作系统
PVCS
软件本身基于Java 开发,能够支持常见的平台
VSS
仅支持Windows 操作系统
与开发工具的集成性
配置管理工具与开发工具是编码过程中最经常使用到两种工具,因此它们之间的集成性直接影响到开发者的便利性,假设无法良好集成,开发者将不可避免地在配置管理工具与开发工具之间来回切换。
表四与开发工具集成性比較表
工具名称
说明
ClearCase
直接与资源管理器集成,十分易用
Firefly
与常见开发工具无缝集成
CVS
对开发工具集成性较差
PVCS
仅支持Windows 操作系统
VSS
与Visual Studio开发工具包无缝连接,其他开发工具集成性差
2)性能是否惬意
配置管理工具软件的一些性能指标对于终于的选择也有着至关重要的影响。
执行性能
假设开发团队规模不大的情况下,配置管理工具软件的性能不会造成非常大影响,但假设项目规模比較大,团队成员逐渐增多的情况下,其执行性能就会带来非常大的影响。
表五执行性能比較表
工具名称
说明
ClearCase
server採用多进程机制,使用自带多版本号文件系统MVFS,对性能有较大负面影响。做为一款企业级、全面的开发配置管理工具,适用于大型开发团队
Firefly
server採用了多线程的应用server,性能表现优秀,做为一款企业级、全面的开发配置管理,能适用于50人到上千人的团队
CVS
较高的执行性能,适用于各种级别的开发团队
PVCS
server採用文件系统共享方式,对CPU、内存及网络要求较高,性能一般,仅适用于中小型项目团队,不适合于企业级应用
VSS
相对功能单一、简陋,适用于几个人的小型团队,在数据量不大的情况下,性能能够接受
易用性
表六易用性比較表
工具名称
说明
ClearCase
安装、配置、使用相对较复杂,须要进行团队培训
Firefly
在提供全面配置管理功能的情况下,安装、配置、使用较为简单,包含安装、配置、培训在内的整个实施周期一般不会超过一个月。
CVS
安装、配置较复杂,但使用比較简单,仅仅需对配置管理做简单培训就可以
PVCS
使用比較简单,仅仅需对配置管理做简单培训就可以
VSS
安装、配置、使用均较简单,非常easy上手使用
从用户界面、与开发工具的集成性角度来说,这几款主流的配置管理软件均有较好的设计,均有较好的易用性。
安全性
表七安全性比較表
工具名称
说明
ClearCase
採用C/S模式,须要共享server上的存储文件夹以供client訪问,这将带来一定安全隐患
Firefly
server上的存储文件夹不用共享,对client不透明,client不可直接訪问存储文件夹,使系统更安全可靠
CVS
採用C/S 模式,不须要共享server上的存储文件夹,安全性较好
PVCS
基于文件系统共享,并且须要以"可写 "的权限共享存储文件夹,存在较大的安全隐患
VSS
基于文件系统共享实现对server的訪问,须要共享存储文件夹,这将带来一定安全隐患
3)费用能否够接受
Rational ClearCase 、Hansky Firefly 两款均属于企业级配置管理工具软件 ,ClearCase价格较贵,,相比之下 Hansky Firefly 是一款不错的选择。
而 PVCS其价格大约是每client几百美元的水平,对于国内企业来说,性价比不太划算。 VSS 是微软打包在Visual Studio开发工具包之中的,显然花费的精力不大,价格也比較廉价,能够做为个人、小项目团队版本号控制之用。
而 CVS则是一款全然免费的开源软件,性能较之企业级配置管理工具差距不大,也是一种不错的选择。
4) 售后服务怎样
表八售后服务比較表
工具名称
说明
ClearCase
大型商用软件,已被IBM公司收购,但国内市场拓展有限,因此服务支持会受到限制。如今中国用户的支持是由位于澳大利亚悉尼的支持中心联系
Firefly
大型商用软件,已在中国成立分公司,全面拓展市场之中,在北京设有支持中心
CVS
做为开源软件,无官方支持,须要用户自己查找资料解决技术问题,如今也出现专门为CVS 做技术支持的公司
PVCS
在中国市场开拓有限,国内没有支持中心
VSS
做为微软的非核心产品,技术支持有限。在其站点上有提供一些常见问题,仅仅有对正式购买的用户提供一定的技术支持
售后服务与产品支持也是一个非常重要的考察点,工具在使用过程中出现这样那样的问题是非常寻常的事,有些是因为使用不当,有些则是工具本身的缺陷。这些问题都会直接影响到开发团队的使用,因此随时能够找到专业技术人员解决这些问题就变成十分重要。
实例说明
最后,笔者介绍几个实际的案例,希望对大家选择软件配置管理工具软件有帮助。
案例一
某公司拥有10 名专职开发者以及一些兼职的开发者,主要从事 Windows和Linux 平台下的软件开发,採用的工具包含Visual Studio 系列、 GCC 等。为了能够加强版本号控制与配置管理工作,决定引入一些自己主动化配置管理工具。
经过谨慎的选择,採用了两步走的方法:
1) 首先採用了Visual Studio 软件包中的 VSS做为配置管理工具;
<SPAN style="FONT-SIZE: 9pt; mso-ascii-font-family: Verdana
...