首页 新闻 会员 周边

修复bug和开发新需求如何控制版本?

0
悬赏园豆:10 [已解决问题] 解决于 2012-09-24 12:12

这个项目是一个winform程序,已经发布了正式版本(2.0),现在根据使用反馈开发3.0版本,涉及到功能界面的修改,也已经改到一半了;但是突然之间客户正在使用的版本(2.0)爆出了bug,要紧急修改发布,但是不能把现在修改到一半的版本发布出去。请问,一般是怎么控制版本来避免这种情况?

莫慌的主页 莫慌 | 初学一级 | 园豆:9
提问于:2012-09-21 10:41
< >
分享
最佳答案
0

不知道楼主是不是使用SVN做源代码管理,其它代码管理工具应该可以使用下面的策略。

目标,要求

         本次svn提交规范主要针对当前项目中出现的svn管理难,开发流程控制难掌控,项目进度记录不准确等问题而提出。要求每个角色都要进行规范化svn作业。

目录结构与开发模式

分散式分支开发模式原理

         Svn://project/

                                               +trunk/(主开发目录)

                                               +branches/(分支开发目录)

                                                                                    +dev_1.0_function1(功能性分支1)

                                                                                    +dev_2.0_function2(功能性分支2)

                                                                                    …

                                               +tags(存档目录,不允许修改)

a)     1.0的开发,做一个dev_1.0的功能性分支

Svn://project/                                                                  

                                               +trunk/(不承担开发任务)

                                               +branches/

                                                                                    +dev_1.0_function1

                                               +tags

b)     1.0功能开发完成,合并分支到主干

Svn://project/                                                                  

                                               +trunk/(merge from branch dev_1.0_function1)

                                               +branches/

                                                                                    +dev_1.0_function1(开发任务结束,冻结)

                                               +tags

c)      测试完成,根据主干做一次1.0的tag

Svn://project/                                                                  

                                               +trunk/(merge from branch dev_1.0_function1)

                                               +branches/

                                                                                    +dev_1.0_function1(开发任务结束,冻结)

                                               +tags

                                                                                    +tag_release_1.0(copy from trunk)

d)     1.0版本结束,做下一个版本的开发2.0

Svn://project/                                                                  

                                               +trunk/(merge from branch dev_1.0_function1)

                                               +branches/

                                                                                    +dev_1.0_function1(开发任务结束,冻结)

                                                                                    +dev_2.0_function2(2.0的开发)

                                               +tags

                                                                                    +tag_release_1.0(copy from trunk)

e)     1.0版本出现bug,直接在dev_1.0版本上修复

Svn://project/                                                                  

                                               +trunk/(merge from branch dev_1.0_function1)

                                               +branches/

                                                                                    +dev_1.0_function1(bugfix)

                                                                                    +dev_2.0_function2(2.0的开发)

                                               +tags

                                                                                    +tag_release_1.0(copy from trunk)

f)       选择性的进行代码合并

使用规范

命名规范

         分支名称采用固定名称与下划线结合方式进行功能性分支描述如:dev_1.0_crm。

存档名称统一采用tag_release_版本的方式。

提交规范


原文地址:

http://www.cnblogs.com/BraveCheng/archive/2012/07/02/2573617.html

收获园豆:10
acepro | 小虾三级 |园豆:1218 | 2012-09-21 15:35
其他回答(8)
0

弄两套 版本控制,一套的话肯定不行。

Qlin | 园豆:2403 (老鸟四级) | 2012-09-21 10:44
0

建分支就可以解决啊

田林九村 | 园豆:2367 (老鸟四级) | 2012-09-21 10:51

能说的详细一点吗?谢谢。

支持(0) 反对(0) 莫慌 | 园豆:9 (初学一级) | 2012-09-21 13:44

@莫慌: 使用SVN,GIT等版本控制软件。建立分支,这样如果需要修改原来的代码切换分支就可以了

支持(0) 反对(0) 田林九村 | 园豆:2367 (老鸟四级) | 2012-09-21 13:59
0

两套代码,一套现在客户使用的,在使用的过程中可以修改,另一套是升级版的(注意这套把客户使用过程中修改的bug要一起修改过来)

jason2013 | 园豆:1998 (小虾三级) | 2012-09-21 11:25
0

每套版本一个备份

念念啊 | 园豆:415 (菜鸟二级) | 2012-09-21 11:30
0

首先,修改bug肯定是基于原来2.0的版本;

然后,发不完后把bug修改的部分整合到正在开发的版本中,并再做整合测试。

Ethan轻叹 | 园豆:996 (小虾三级) | 2012-09-21 13:29
0

一般版本控制软件都支持分支的概念,将已经发布的版本作为主线,开发中的版本作为分支。一般有紧急修改,则直接修改主线,并且将修改的部分合并到分支,等待分支开发完成,再将分支合并到主线,然后发布主线。

我现在用的TFS2010,其他的应该也可以。

迷路中的路人甲 | 园豆:93 (初学一级) | 2012-09-21 14:35
0

参考文章:Git详解-Git分支

dudu | 园豆:30994 (高人七级) | 2012-09-21 17:42
0

源码管理之分支。

lucika.zh | 园豆:62 (初学一级) | 2012-09-21 20:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册