三库(开发库、受控库、静态库)的概念及个人的理解
作者 流水先生   查看 18947   发表时间 2007/3/1 10:25  【论坛浏览】
记得第一次在国内的坛子里看到三库的讨论的时候,登时就晕了…… omyybyhba
三库的概念被弄得挺严重,甚至被实现为物理上的多个库……omyybyhba
omyybyhba
这里,首先贴一下三库定义的原文、翻译,然后再谈谈个人的理解……omyybyhba
omyybyhba
==原文位置==omyybyhba
(中国国家标准也有三库的定义。这里就不再给出了。这里给出的是CMMI的定义,若有其它国际上比较权威的定义,烦请熟悉的同志贴一下,谢!)omyybyhba
omyybyhba
CMMI V1.0 omyybyhba
=> level 2 omyybyhba
=> Configuration Managementomyybyhba
=> SG 1 Estabish Baselines omyybyhba
=> SP 1.2 Establish a Configuration Management Systemomyybyhba
=> Subpractices 2. Store and retrieve configuration items in the configuration management system.omyybyhba
omyybyhba
==原文==omyybyhba
omyybyhba
Examples of configuration management systems include the following:omyybyhba
omyybyhba
Dynamic (or developer's) systems contain components currently being created or revised.omyybyhba
They are in the developer's workspace and are controlled by the developer.omyybyhba
Configuration items in a dynamic system are under version control.omyybyhba
omyybyhba
Master (or controlled) systems contain current baselines and changes to them.omyybyhba
Configuration items in a master system are under full configuration management as described int ths process area.omyybyhba
omyybyhba
Static systems contain archives of various baselines released for use. omyybyhba
Static systems are under full configuration management as described in this process area.omyybyhba
omyybyhba
==翻译==omyybyhba
omyybyhba
(感谢cmmi_cn@163.com等同志对CMMI的翻译工作!)omyybyhba
omyybyhba
CMMI V1.0 omyybyhba
=> 第二级 omyybyhba
=> 配置管理omyybyhba
=> SG 1 建立基线 omyybyhba
=> SP 1.2 建立配置管理系统omyybyhba
=> 子实践 2. 在配置管理系统中存取配置项omyybyhba
omyybyhba
配置管理系统举例如下:omyybyhba
omyybyhba
动态(或开发者)系统,包含当前正在产生或修订的组件。omyybyhba
它们在开发者的工作区,而且由开发者所控制。omyybyhba
属于动态系统的配置项,在版本控制之下。omyybyhba
omyybyhba
主(或受控)系统,包含当前的基线和基线的变更。omyybyhba
属于主要系统的配置项,在本过程域所描述的完全的配置管理之下。omyybyhba
omyybyhba
稳定的系统,包含已分发使用的各种基线的保存档。omyybyhba
稳定的系统,在本过程域所描述的完全的配置管理之下。omyybyhba
omyybyhba
omyybyhba
==个人理解==omyybyhba
omyybyhba
首先,三库仅仅是举例,在实践中,并不是一定要弄出三个库来。omyybyhba
其次,三库是逻辑上的概念,在实践中,并不是要对应到物理上的三个库。omyybyhba
根据定义,开发库可以大致映射为开发工程师的个人工作空间,在开发工程师本机上,个人目录下。当然,对于稍大的任务,也可以映射为存储库里的一个任务分支。omyybyhba
而受控库,则是开发工程师相互协作、交流最新工作成果的地方。大致上,可以映射为版本控制工具(svn/cvs/cc……)的repository(存储库)。这里,可能有不同的分支/目录做不同的用途,可能会打标签、基线。omyybyhba
静态库,又称基线库,指的是那些重要的基线,这些基线标志着项目的重要里程碑,或者这些基线被Release(发布)给了“外界”。在比较简单的版本控制工具里,一般可以用特定标签命名规范来把它们从其他标签、基线中区别出来;在SVN中,可以设置一个特别的Tag目录。而在比较复杂的版本控制工具里,也可以用基线/标签的某种属性(质量级别)来表达。例如,当某条基线通过了系统测试后,就把它的质量级别promote(提升)到“通过系统测试”。omyybyhba
对于静态库,再补充一点:对于这些基线,我们通常不仅要记录源代码,最好也保存一下编译结果/安装包。这样将来用起来会比较方便。编译结果/安装包一般就不要放到版本控制工具里去了,除非你受了商业宣传的蛊惑…… 在合适的机器上建个共享目录,设置合适的权限,来存储编译结果/安装包,一般就可以了。omyybyhba
omyybyhba
omyybyhba
个人意见。大家拍砖吧^_^

序号 评论者 共有评论 93   【论坛浏览】  【发表评论】 评论时间
41 lhjymry

  引用:
原帖由 cufehx 于 2007-10-12 14:52 发表

三库概念在一个库里通过分支、基线实现应该是没有问题的。如果确实觉得有必要分开的话,静态库(产品库)单独建立物理上的库似乎可行,因为产品库存放的基本都是一些稳定的版本,相反在受控库中生成太多的基线可能不 ...

很有收益,实际上我们这里就是通过物理上的2库来实现逻辑上的3库概念。

开发库和受控库利用分支来区分,不同的分支对应不同概念上的库,开发分支的权限相对比较宽松,并且提供开发人员的协同工作和交流;受控分支按实际情况可能有多条,分别设置不同的权限,只有少数被授权的人才可以修改。我们采用功能比较强大的配置管理工具实现。

产品库在物理上是独立的库,因为版本相对已经比较稳定,而且经常有从产品库提取版本对客户发布的需求,所以我们采用和开发库、受控库不一样的,相对比较简单的版本管理工具。
2007/11/6 10:13
42 lhjymry 这样也可以节约些管理成本,不需要那么多的license了,呵呵 2007/11/6 10:16
43 mickey 看了大家的贴子,受益匪浅。

但如果和工具结合的话,例如cc,这三库该如何实现。还望大家指教。
2007/12/19 16:20
44 都市边缘人 感觉这三库就类似于SVN中的原始分支:
TRUNK/TAGS/BRANCHES
2008/2/20 16:03
45 winterliu001 关注
都很关注这样的问题!!!!
2008/2/23 10:06
46 漂亮老婆婆 请问楼主,受控库和静态库可否共用为一个库,我直接把受控库当作基线库,行不?? 2008/2/23 10:24
47 lhdht 在CC中,三个库可以通过流的划分来区分,
当然,也需要基线的辅助标识
2008/3/3 15:33
48 leojanson 1、开发库:CC中,给用户建立的静态视图、动态视图、个人工作空间都可以视为开发库,这时候,用户可以任意的修改程序代码,升级每个文件的版本。

2、受控库:配置管理员打好基线后的文件、代码的集合,就是受控库,通过设置,使得这部分的内容及其基线都不可修改。

3、产品库: 在CC中,可以通过集成基线、产品基线来划分这部分代码,也可以建立一个产品的VOB来独立配置产品库。

总的来说, 三库的概念是逻辑上的,并非物理的。当然,如果你仅仅是在一个PC或几台PC是做开发,没有什么配置管理工具和版本管理的手段,那你可能真的要建立三个物理的数据库(硬拷贝)了。
2008/3/16 01:52
49 yayaya_2 同意楼主的说法。
感觉很多概念其实实际用一下,就明白了。
2008/3/18 10:45
50 threeg 三库的逻辑思想。很不错, 2008/3/18 18:52
 共有评论数 93  每页显示 10
页码 5/10  |<  <<   1 2 3 4 5 6 7 8 9 10   >>  >|