SVN中的发布管理 [英] Release management in SVN

查看:25
本文介绍了SVN中的发布管理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我查看 SVN 日志时,我真的希望我能看到告诉我发布完成时间的标记.我已经在其他版本控制系统中看到了这一点,例如 PVCS 和 Perforce.

When I look in the SVN log I really wish I could see markers that tell me when releases were done. I've seen this in other version control systems such as PVCS and Perforce.

这可以在 SVN 中完成吗?我已经做了一些研究,目前看来这种事情不受支持.

Can this be done in SVN? I've done a little bit of research and so far it looks like this sort of thing is not supported.

我们不想为每个版本都将源代码复制到不同的文件夹中.这会导致开发人员机器上出现大量不必要的文件重复,并且只为我们提供了每个版本的修订号记录.我可以使用文本文档来做到这一点!

We don't want to have to copy our source to a different folder for each release. This results in a huge amount of unnecessary duplication of files on the developers machine and only gives us a record of the revision number of each release. I can do that using a text document!

我的目标是拥有一个单一视图,向我展示我的版本的年表,在这些视图之间我可以看到每个版本之间发生的所有代码更改.这样可以更轻松地编译发行说明.

My goal is to have a single view that shows me a chronology of my releases, between which I can see all of the code changes that took place between each release. This then makes it easier to compile release notes.

推荐答案

Richard,标签非常接近,但我想知道您是否需要一个专用的发布分支.

Richard, tags are very close, but I wonder if what you need might not be a dedicated release branch.

为此,尽早从主干创建一个分支,称为发布"之类的东西.然后像往常一样在主干上工作,当您准备好发布时,将您的更改从主干合并到发布"中.这是您应该修改发布的唯一方法.

For this, make a branch from trunk early on called something like 'Release'. Then work on trunk as normal, when you're ready for a release, merge your changes from trunk into 'Release'. This is the only way that you should modify release.

然后,您可以根据需要从发布中标记,而不是 100% 必要.

You can then tag from release if you want, not 100% necessary.

但是这会给你一个分支,其中包含主干修订的子集.通过以下方式了解您的发布日期:

But what this will give you is a branch that has a subset of the trunk's revisions in it. Find out your release dates with:

svn log --stop-on-copy svn://server/project/branches/release

这将为您提供发布日期列表(带有修订版).要查看每个版本中的内容,请执行以下操作:

This will give you a list of release dates (with the revisions). To see what's in each release do:

svn mergeinfo --show-revs=merged "svn://server/project/trunk" "svn://server/project/branches/release"@<release revision>

另请注意,通过这种方式工作,您不仅限于严格按顺序发布主干中的所有内容 - 您可以挑选修订,如果您暂时不想发布修订,则不包括修订,但仍包括后续修订版.

Also note that by working this way, you aren't limited to a strictly sequential release of everything in trunk - you can cherry pick revisions, excluding revisions if you don't want to release them just yet, but still including subsequent revisions.

这篇关于SVN中的发布管理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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