以下是我发表于程序员杂志的文章,发给大家.要了解本文章更多内容,请看《程序员杂志》07年第7期
网站类产品版本控制实践
淘宝网  卞青

摘要

版本控制是全面实行软件配置管理的基础,是对系统不同的版本进行标识和跟踪的过程。对版本的控制,就是对版本的各种操作控制,包括检入检出控制、版本的分支和合并、版本的历史记录和版本的发行。

网站类产品不同于一般的软件产品,它不是为了完成某个客户的需求而定制的单一产品,它往往是集成了很多功能,而且会不断的有新功能需要开发,有旧的功能需要改善的过程。而且网站类产品变更比较频繁,为了各种情况的发布也会比较频繁。

根据网站类产品的特殊性,本文主要介绍如何开展版本控制来适应频繁发布的情况,并做好版本管理的方法和技巧。本文主要针对的是程序的版本控制。

关键词

版本控制 发布 分支 合并             

1  版本控制介绍

1.1 版本控制定义    

我们在日常工作中,都或多或少地进行着版本管理的工作。比如,有时我们为了防止文件丢失,而拷贝一个后缀名为bak或者日期的备份文件,当文件丢失或者被修改后可以通过该文件恢复。

那么什么是版本控制呢?一个版本控制系统维护了一套组织好的过去完成的文件的所有版本。版本控制系统允许人们回到先前的版本,并比较任何两个版本来看它们之间有什么不同。这样,版本控制保持了一个历史的正确的(和可挽回的!)文件进化的日志。更重要的是,版本控制系统能让几个人(甚至是处于完全不同的地理位置的人)通过因特网或者私有网络来对相同的文件进行修改从而在一个开发项目上共同工作。版本控制是对系统不同版本进行标识和跟踪的过程。版本标识的目的是便于对版本加以区分、检索和跟踪,以表明各个版本之间的关系。一个版本是软件系统的一个实例,在功能和性能上与其他版本有所不同,或是修正、补充了前一版本的某些不足。

1.2 版本控制工具

当然,谈到版本控制,肯定要提到版本控制工具。版本控制工具是程序开发、管理必不可少的工具,特别是在多人协作的团队中,适宜的版本控制工具可以提高开发效率,消除很多由代码版本带来的问题。

目前业界上有一些配置管理工具,常用的有以下几种:如StarteamPVCSClearCas是重量级的商业版本控制工具,更适合庞大的团队和项目,并且价格不菲。Visual SourceSafe是微软的产品,当然只能用在windows平台并与微软的开发工具无缝集成。CVS(或SVN)免费开源,并且几乎所有开源项目都是使用CVS(或SVN)进行版本管理,无疑,它是我们Java开发者最优选择。本文所描述的方法和技巧,主要是以CVS(或SVN)工具为前提。

2  网站类产品版本控制

2.1       网站类产品特点

随着网络技术的发展,国内出现了大大小小的门户网站、电子商务网站等类别的网站,网站类产品与传统的软件相比有着很多不同之处,尤其是门户网站和较大的B2BC2C网站。

1)               在产品的功能方面:传统的软件大多是为了单一客户的某些需求而进行定制,功能相对比较单一,且后期维护中功能变化不大。而网站类产品虽然是针对某些需求开发,但后期需求的变化会比较频繁,相应的功能变化会比较灵活。

2)               在产品的升级方面:网站类产品随着后期新需求和功能改进的影响,网站升级和维护会比较频繁,且开发周期比较短。但传统的软件会定期进行升级和维护,开发周期相对会比较长。

3)               在产品对象方面:传统的软件的适用对象一般是指定类型的用户。但网站类产品的服务对象范围会大很多。

4)               在产品发布方面:传统的软件一般是软件统一发布,软件发布后需要升级操作才能生效。但网站类产品发布相对比较复杂,通常是部分应用发布,且软件发布的质量会影响网站正常使用。

   从以上的对比可以看出,网站类产品需求变更的频繁性和产品发布的复杂性,给网站类产品的版本管理工作带来了更大的困难。

 

 

 

 

@如果你对配置管理有兴趣,欢迎与我交流!

我的板块http://bbs.scmlife.com/forum-46-1.html