使用SVN管理发布的正确方法是什么?

时间:2009-11-03 19:56:00

标签: svn deployment release-management change-management

我的上一个雇主已经开发了一个精心设计的系统,该系统位于SVN之上以处理正在进行的开发:(变更管理)查看错误/问题并在通过标记进行提交时将它们与提交相关联作为基于错误/问题跟踪系统的特定版本的一部分,SVN中的错误ID号和(发布管理)标记项。第二部分有一个与之关联的工作流程,以便从用户/管理层签字。然后,当需要进行发布时(通常是每周四晚上),他们可以运行命令来检出所有标记的代码并进行部署。

我的新公司要小得多,而且我有兴趣找到一个低成本/低维护的等价物,即使它只是意味着直接与SVN打交道。特别是,我经常发现在游戏后期的提交破坏了我们的构建,并且很难解开我们可以包含的内容。 (就管理SVN而言,我倾向于更喜欢标签而不是分支,因为它需要较少的预见,但我很高兴不相信。)

人们使用什么来标记发布的提交并进行后续部署?是否有任何良好的开源解决方案来管理发布周期,允许您从Web浏览器浏览SVN并标记发布的问题/提交?到目前为止,我看到的最好的事情是Jira,但这看起来像一个非常大的工具(难以配置/维护吗?)。 Apache Foundation为此目的充分利用了Jira(例如,参见the Mahout roadmap)。

更进一步的是,让同样的系统还包括持续集成,这样我们的单元测试就可以在每次提交时运行,然后每个bug /问题都会将这些信息关联起来。

注意:stackoverflow上有一些稍微相关的问题,但我没有看到任何涉及部署周期和发布管理这一方面的内容(请参阅release-management-in-svnmanage-your-project-life-cycle和{{3} })。

2 个答案:

答案 0 :(得分:2)

如果你在游戏中发现破坏性的签到太晚以便有效地修复它们,那么你应该在开始担心发布过程之前跳上CI列车。让开发人员对构建的完整性负责是一个更容易的过程,当每次有人检查某些内容时,电子邮件就会出现问题。让它成为一个游戏;无论谁破坏了构建,都必须保管它,直到下一次它被打破。

启动和运行CruiseControl(我使用过CC.NET)并没有那么难以进行颠覆(我从没有构建过程谈到使用CC.NET和NAnt完全自动构建和部署大约一个月,当然与其他职责交错)。

我们也使用JIRA,那里很难出错。您可以让JIRA观看“固定PROJECT-11”等内容的subversion提交消息,它会自动关闭相应的JIRA项目。您可以从那里构建发行说明。

答案 1 :(得分:0)

您是否调查了Tortoise SVN修订图?如果您标记每个版本(正如其他人指出的那样,不涉及在服务器或工作站上复制文件),那么您可以按时间顺序查看所有修订,标签指示实际版本。您可以通过高亮显示您感兴趣的两个修订版并从上下文菜单中选择差异来区分版本和/或主干