这个项目是一个winform程序,已经发布了正式版本(2.0),现在根据使用反馈开发3.0版本,涉及到功能界面的修改,也已经改到一半了;但是突然之间客户正在使用的版本(2.0)爆出了bug,要紧急修改发布,但是不能把现在修改到一半的版本发布出去。请问,一般是怎么控制版本来避免这种情况?
不知道楼主是不是使用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
弄两套 版本控制,一套的话肯定不行。
建分支就可以解决啊
能说的详细一点吗?谢谢。
@莫慌: 使用SVN,GIT等版本控制软件。建立分支,这样如果需要修改原来的代码切换分支就可以了
两套代码,一套现在客户使用的,在使用的过程中可以修改,另一套是升级版的(注意这套把客户使用过程中修改的bug要一起修改过来)
每套版本一个备份
首先,修改bug肯定是基于原来2.0的版本;
然后,发不完后把bug修改的部分整合到正在开发的版本中,并再做整合测试。
一般版本控制软件都支持分支的概念,将已经发布的版本作为主线,开发中的版本作为分支。一般有紧急修改,则直接修改主线,并且将修改的部分合并到分支,等待分支开发完成,再将分支合并到主线,然后发布主线。
我现在用的TFS2010,其他的应该也可以。
源码管理之分支。