Visual Source Safe,即VSS,是微软公司为Visual Studio配套开发的一个小型的配置管理工具,准确来说,它仅能够称得上是一个小型的版本控制软件。VSS的优点在于其与Visual Studio实现了无缝集成,使用简单。提供了历史版本记录、修改控制、文件比较、日志等基本功能。
但其缺点也是十分明显的,只支持Windows平台,不支持并行开发,通过Check out - Modify - Check in的管理方式,一个时间只允许一个人修改代码,而且速度慢、伸缩性差,不支持异地开发。甚至于微软本身也不采用其做为配置管理工具,而是使用一个名为 SLM 的内部工具。
如何选择配置管理工具
面对这些形形色色,各有千秋的配置管理工具,如何根据组织特点、开发团队需要,选择切合适用的工具呢?笔者就结合工作实践中的经验与大家做一些交流与探讨。
配置管理工具的选择所需考虑的因素大体包括以下几个因素:
功能是否符合实际需求?是否符合团队特点?性能是否满意?费用是否可以接受?售后服务如何?接下来,我们就这几方面逐一深入地探讨:
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 |
无专门支持的模块 |