1 什么是SCM软件配置管理((Software configuration management)?
软件配置管理是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。
它是为了解决开发过程中不过更新版本时遇到的各种问题,如版本过多找不到最新版本、多人操作一个文件造成的时间、空间冲突、程序误删、修改过的文件为什么修改什么时间修改的等等问题,而且开发无法回溯到以前某个阶段,早起,人们通过手工建立文件夹来管理,这样未免太浪费空间,并且,效率低下。
通过软件配置软件可以集中解决这些问题,使开发高效进行,这也是SCM系统逐渐形成并流行的原因。
2 软件配置管理规范
软件研发和管理过程中会产生许许多多的工作成果,例如文档、程序和数据等,他们都应当妥善地保管起来,以便查阅和修改。如果把所有文件一股脑的塞进计算机里,那么使用起来很麻烦。
凡是纳入配置管理范畴的工作成果统称为配置项,配置项主要有两大类:一类是属于产品的组成部分,例如需求文档、设计文档、源代码、测试用例等等;另一类是在管理过程中产生的文档,例如各种计划、报告等。
每个配置项的主要属性有名称、标示符、文件状态、版本、作者、日期等。配置项及历史纪录反映了软件的演化过程。
基线由一组配置项组成,这些配置项构成了一个相对稳定的逻辑实体。基线中的配置项被冻结后,不能在被任何人随意更改。基线通常对应于开发过程中的里程碑。通常将交付该客户的基线称为一个Release,为内部开发用的基线称为一个Build。
3 SCM系统重点在于应用,早起的一些软件有SCCS 、Codemar、 TeamWare 、RCS 等等,这里就不在详细介绍,他们在使用过程中逐渐暴露出一些缺点,已不再流行应用,目前应用比较广泛的是CVS和SVN。
他们都是很好的软件配置管理系统,SVN是一个开源的版本控制系统,它可以记录所有的文件修改版本。CVS也是一个版本控制系统,可是现在大家更多的是用SVN,因为SVN不但继承了CVS的优点,而且还有许多的功能是CVS所不具备的,比如创建标志和分支dubious,人们用它的比较普遍,逐渐取代了CVS。
我们用它需要安装一个服务器和客户端软件,推荐大家两个subvision服务器,客户端为TortoiseSVN,tortoiseSVN 只是SVN 的一个图形化的操作界面, 有了这两个,就可以建立起强大的svn 服务器了。另外还有一个可视化的,VisualSVN-Server和VisualSVN,分别为服务器、客户端。
这是VisualSVN-Server界面:
TortoiseSVN官网下载地址:http://tortoisesvn.net/downloads.html
Subversion官网下载地址(现在的最新版本是到了1.7.4了):http://subversion.apache.org/
大家也可以留言,我会把setup发给大家。