颠覆和修订工程-什么是最好的Web资源?
我们正在从CVS迁移到SVN,并采用某种版本管理,以强制按顺序进行开发/测试/发布周期。我们目前正在同一条代码行上进行测试,开发和发布,我们知道这是一个不好的做法,并且我们希望结束这一行。
我们在使用源代码树方面的经验,专业知识和建议是什么。
我们正在建立小型/平均(2-5个月)的自定义项目,我们必须尽早与客户联系以进行审核。需求蠕变很常见。
编辑:
请注意,我不仅需要有关颠覆的建议,还需要更多关于整个开发/测试/部署周期如何反映在主干/分支/标签/版本等中的建议
解决方案
- "早分行,经常分行。"
- 所有构建都应该是完全可复制的,而不必遍历日志(考虑对每个构建进行标记)
- 如果我们使用问题跟踪器,则要求所有签入都在提交消息中包含一个(有效)问题ID(添加一个预钩以进行检查)。
- 仅应允许构建团队创建生产分支(应鼓励开发人员为任何重要任务创建个人分支)
- 持续进行构建,并确保每个人都意识到破坏构建是一件大事。
- 阅读整本SVN书,然后再次阅读。我们需要前后了解此工具。为开发人员举办培训课程("如何为我的工作创建临时分支","如何合并"等)。
...在这个问题上缺乏很好的阅读,但是如果我不得不向完全采用绿色的SCM商店推荐一本书,那就是Vincent Maraia的" The Build Master"。它的细节很短,但是易于阅读,并且提供了(非常简短的)SCM良好想法的概述,一旦我们了解它们就很有道理,但是由于某种原因,很多商店都完全缺乏。
祝你好运!
Subversion使分支比CVS更容易(在GIT中分支更便宜)。我建议我们为主要修订版本创建分支,并计划将分支合并回主干。请注意不要长时间合并到分支中,因为我们等待的时间越长,它将变得越来越困难。
如果我们需要快速起步,并且不想管理所有服务器/设置程序,则还有一些服务提供集成的错误跟踪/部署等功能:
- http://beanstalkapp.com/
- http://unfuddle.com/
- http://www.assembla.com/
一些资源:
这本特别的书回答了我最初提出的许多问题:
http://www.pragprog.com/titles/svn/pragmatic-version-control-using-subversion
在stackoverflow上进一步搜索:
TortoiseSVN好的分支和合并教程?
Cal Henderson(Flickr.com的开发人员)在迈阿密举行的FOWA上的演讲:
http://cdn4.libsyn.com/carsonsystems/Cal_Henderson.mp3
颠覆的免费"圣经"(合并篇):
http://svnbook.red-bean.com/en/1.1/ch04.html