使用SVN管理版本的正确方法是什么? [英] What's the right way to manage a release with SVN?

查看:202
本文介绍了使用SVN管理版本的正确方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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



人们使用哪些标签来发布发布和进行后续部署?是否有任何良好的开源解决方案来管理发布周期,允许您从Web浏览器浏览SVN并发布/提交发布标签?到目前为止,我看到的最好的事情是 Jira ,但这看起来很大工具(难以配置/维护?)。 Apache基金会为此目的很好地利用了Jira(例如,参见 Mahout路线图)。



除了这一点以外,这个同样的系统还包括持续集成,以便我们的单元测试可以在每个提交中运行,然后每个bug /问题还有这个信息相关联。



注意:stackoverflow有一些稍微相关的问题,但是我没有看到涉及部署周期和发布管理这一方面的任何内容请参阅版本管理-svn manage-your-project-life-cycle 最佳方式到处理变更管理)。

解决方案

如果您在游戏中发现建筑破坏检查太晚,以便有效地修复它们,那么您一定要在CI火车上跳过你开始担心发布过程。每当有人检查一些螺丝钉的东西时,让电子邮件出现的时候,使开发者负责构建的完整性是一个更容易的过程。做一个游戏谁打破构建必须保持它,直到下一次它被破坏。



使用CruiseControl(我使用CC.NET)启动并运行并不难颠覆(我让我们从没有构建过程谈到在一个月内完全自动化构建和部署CC.NET和NAnt,当然与其他责任交错)。



我们也使用JIRA,那里很难出错。您可以让JIRA监视固定PROJECT-11之类的Subversion提交消息,并将自动关闭相应的JIRA项目。您可以从那里制作发行说明。


My last employer had developed an elaborate system which sat on top of SVN to deal with ongoing development: (change management) look at bugs/issues and associate them with commits when making the commit by tagging the bug id number and (release management) tag items in SVN as part of a specific release based on the bug/issue tracking system. This second part had a workflow associated with it to get sign-off from users/management. Then, when it came time to do the release (usually every Thursday evening), they could run a command to checkout all the tagged code and deploy it.

My new firm is much smaller and I'm interested in finding a low-cost/low-maintenance equivalent, even if it just means dealing directly with SVN. In particular, I regularly find commits late-in-the-game breaking our build, and it becomes very difficult to untangle what we can include. (So far as managing SVN is concerned, I tend to prefer the idea of tags over branches because it require less forethought, but I'm happy to be convinced otherwise.)

What do people use to tag commits for a release and to do a subsequent deployment? Are there any good open-source solutions to manage a release cycle that allows you to browse SVN from a web browser and tag issues/commits for a release? The best thing that I have seen so far is Jira, but that looks like a very big tool (is it difficult to configure/maintain?). The Apache Foundation makes good use of Jira for this purpose (see, for instance, the Mahout roadmap).

Going even a step beyond this would be to have this same system also include continuous integration so that our unit tests could be run with each commit and each bug/issue would then also have this information associated.

Note: There are some slightly related questions on stackoverflow, but I don't see anything covering this aspect of the deployment cycle and release management (see release-management-in-svn, manage-your-project-life-cycle, and best-way-to-handle-change-management).

解决方案

If you're finding build-busting checkins too late in the game to fix them efficiently you should definitely hop on the CI train before you start worrying about the release process. Making developers responsible for the integrity of the build is a much easier process when there are e-mails going out every time someone checks something in that screws the pooch. Make it a game; Whoever breaks the build has to babysit it until the next time it gets broken.

Getting up and running with CruiseControl (I used CC.NET) isn't that hard with subversion (I got us from no build process to speak of to completely automated build and deployment with CC.NET and NAnt in about a month, interleaved with other responsibilities of course).

We also use JIRA and it's hard to go wrong there. You can have JIRA watch the subversion commit messages for things like "Fixed PROJECT-11" and it will automagically close the appropriate JIRA item. You can build your release notes from there.

这篇关于使用SVN管理版本的正确方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆