什么是Software Configuration Management(2)?

charles_hhb 2002-11-06 04:44:03
From www.chinaxp.org

Extreme Programming 论坛 / 什么是Software Configuration Management(2)?
charles 2002.11.05, 0个回复, 20次浏览
SCM最基本的要求就是能为开发提供一个健壮,可重复和可追踪的Build,install,deploy的流程。这样
一个流程是开发的以进行的基础。这个过程必须是很容易使用,并且尽可能的自动化。自动化程度越
高,出错的机会越小。

一些最基本的功能:
Release Management -- 顾名思义了,包括release,version,patch,diff
Build -- 编译
package -- 打包
deploy -- 发布
而这些要根据不同的时期有不同的流程,比如开发阶段的build,package,deploy了,QA阶段的
build,package ,deploy,然后是production阶段的build package deploy.都有可能有不同的具体要
求。

怎样做这些流程?先讲Release management,就是的什么1.0,2.0,2.0.1之类的东西了。要做到这些,首
先要有一个source control乐。可以是CVS,perforce,cleancase etc。然后就是利用这些tool来组织
source code乐。以一个project为例可以这样组织,如图


Main line是source code,所有经过核准的开发都在主线上开发。然后根据需要branch(建分支).Branch
就是获得一个main line的完整拷贝,然后再source control的repository中另建一个目录树

for instance:
/main
/project A

Project A/B等可以是试验性质的project。比如主线在开发,而又打算做一些风险很高的实验。于是首
先建一个Project A得分支,然后一组人员在这个分治上做试验,而不影响主线的开发。等试验做完
了。再把project A上的code合并到主线中去。

开发都磨个阶段可以公布了,就可以标记作为一个release乐,就是Ver1.0,2.0等分支。每个release一
定都会伴随一个build乐。而这个build通常都用时间做标签 bi ru, Ver1.0-buiild-2001-10-04-15-30
/main
/project A
/Ver1.0

release后的bug的修补都在/Ver1.0中作了。而Main可以继续开发。但Ver1.0中bug的修改的code最宗都
要merge到主线中。修补的后的1.0分支,可以作为patch交给用户。patch可以是full的,也可以是
differentiate德,就是只把改动的部分作为patch。如果是production系统,只把改动的部分作为
patch会比较容易debug如果出现问题。

而在一个Release后,可能对对这个release修修仆仆,增加减少futures,然后就可以退出sub-release
乐。因为没有什么重大的改进,所以还是把2.0留给大的改动吧。否则很快Version去到11.0,12.1不是
很好听。于是可以再主线上在做branch

/main
/project A
/Ver1.0
/Ver1.1

然后继续在1.1上做修补,同样的,修补的改动是要merge到主线上的。

Merge是一个很困难的问题。很多的SCMtool,cvs,perforce,sourcesafe等都提供不同程度的自动merge
功能。但还是不好用。

...全文
22 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
harry_comm 2002-11-06
  • 打赏
  • 举报
回复
还要包括文档管理,测试!!
其实最好的CASE应该把这些都串起来!
瞧俺老孙的 2002-11-06
  • 打赏
  • 举报
回复
明白了

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧