cmhuang 发表于 2006-4-18 15:10:18

关于配置管理中的版本树

产品发布1.0版本后,在1.0的基础上又发布了1.1版本分支和1.2版本分支。
后来我发现1.0版本上有个bug需要修复,1.1和1.2以及1.0的所有分支上都有同样的bug。
如果我修复1.0版本上的bug,怎样才能使得他所有的分支(如1.1和1.2)都不再有这个bug,也就是怎样更新到分支版本上?

dzhot 发表于 2006-4-19 17:56:05

我公司的做法是 把前一版本的bug转录到下一版本的bug列表中。(注:我用的是bugzilla这个转录只要改版本号就行了。)这样项目经理就能注意到这个问题。并安排人修改。
你这里有两个分支,它们是相互独立的分支版本么?如果是,不如都转录一份,如果有先后关系,就录到最新版本中。

andy 发表于 2006-4-20 09:57:49

前面cmhuang所说的情况是由于多个版本的问题,我的建议就是要看从1.0版本切出的1.1和1.2是否还需要归并到1.0版本.
    因为有时候是基于某一版本做为基线进行其他程序开发时,也就是在1.0版本上进行其他程序开发时,完全就可以直接在1.1,1.2版本上直接把BUG改掉.
    但如果公司只是为了加快开发速度,在1.0版本上切出其他版本(1.1,1.2),以后还要统一归到1.0这个主版本形成下一个新版本程序时,完全就可以在产生新版本(例如:1.3)时修复该BUG.

cmhuang 发表于 2006-4-25 16:10:10

谢谢楼上的
可能我没有说清楚,我的意思是:
产品1.0发布,基于该1.0版本我为项目1作了客户化修改后发布了1.1版本;
基于1.0版本我为项目2作了客户化修改后发布了1.2版本;
我可能有很多项目都是基于1.0版本的,比如说10个项目;
产品1.0和10个项目都有bug(A)。
我是想问:如果我在产品1.0上修复了这个bug,有没有方法能够高效的修复我10个项目上的同一个bug?
我是不希望在10个项目上修改10次该bug

andy 发表于 2006-4-26 17:33:13

通常这属于配置管理范畴,下面以CVS工具为例

1.先在1.0上打一个标签cvs tag test_1_0

2.再从这个版本建10个分支.分别是:
cvs rtag -r test_1_0 -b test1
...
cvs rtag -r test_1_0 -b test10

3.这10个项目安照自己的需求开发下去,然后在test_1_0上修复了一个bug,测试通过后 再打一个patch,cvs tag -r -r test_1_0 test_1_0_patch

4.最后将这个版本merge到10个branch上.分别是:
cvs update -r test1 -j test_1_0_patch
...
cvs update -r test10 -j test_1_0_patch

cmhuang 发表于 2006-4-27 16:21:03

yes,谢谢版主
我关注的是第四步,是不是一定要手工merge10次?(因为merge也是件很讨厌的事情啦)
页: [1]
查看完整版本: 关于配置管理中的版本树