Subversion:在构建服务器上自动查找最新的稳定分支

发布于 2024-12-16 11:52:55 字数 557 浏览 2 评论 0原文

Subversion 存储库布局遵循 /trunk /branches/... 模式,因此我们有:

/trunk
/branches/stable-20100716
/branches/stable-20111231
/branches/stable-20110401
/branches/specialversion
/tags/some-tag

然后,我们有一个构建服务器,可以构建主干和当前的稳定版本。

问题是:构建服务器如何找到当前的稳定版本?

我们使用 CruiseControl(java 版本)和 ant 在 Windows 环境中进行构建过程。不过,颠覆服务器是Linux。

在 CVS 中,我们会使用标签。这是我第一次在 subversion 中缺少标签。我可以标记分支,但为了使标记保持最新,我必须在每次提交到当前稳定版本时删除/添加标记。也许提交挂钩可以提供帮助,但是是否有更简单的解决方案来自动化此操作? (也许无需学习 Windows 脚本主机等?)

在构建服务器上为每个新的稳定版本添加一个新项目是可能的,但它相当复杂且容易出错......

The subversion repository layout follows the /trunk /branches/... pattern, so we have:

/trunk
/branches/stable-20100716
/branches/stable-20111231
/branches/stable-20110401
/branches/specialversion
/tags/some-tag

Then, we have a build server which can build the trunk and the current stable version.

Question is: How does the build server find the current stable version?

We use CruiseControl (java version) and ant for the build process in a windows enviroment. The subversion server is linux, though.

In CVS, we would have used a tag. This is the first time I am missing tags in subversion. I could tag the branch, but to keep the tag up to date, I would habe to delete/add the tag on each commit to the current stable version. Maybe a commit hook could help, but is there a simpler solution to automate this? (Maybe without learing windows scripting host or so?)

Addin a new project on the build server for each new stable release would be possible, but it's rather complicated and error-prone...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贱人配狗天长地久 2024-12-23 11:52:55

也许您可以创建一个 符号链接 使 /branches/stable-version 重定向到最后一个稳定分支(手动操作,但在每个新的稳定分支创建时只执行一次)。所以你的存储库将如下所示:

/trunk
/branches/stable-20100716
/branches/stable-20111231
/branches/stable-20110401
/branches/specialversion
/branches/stable-version    # symbolink link to stable-20111231
/tags/some-tag

Maybe you could create a symbolink link to make a /branches/stable-version to redirect to your last stable branch (manual operation, but to do only once at each new stable branch creation). So your repository will look like this :

/trunk
/branches/stable-20100716
/branches/stable-20111231
/branches/stable-20110401
/branches/specialversion
/branches/stable-version    # symbolink link to stable-20111231
/tags/some-tag
熊抱啵儿 2024-12-23 11:52:55

最简单的解决方案似乎是重命名您的稳定目录。如果您只有一个稳定的当前版本,那么您应该只有一个稳定的目录。

如果您需要保留最后 3 或 4 个稳定版本,请为每个设置 3 或 4 个稳定目录和一个 Cruisecontrol 项目。

如果您希望构建机器自动构建具有最新日期的版本,并将其用作“稳定”构建,那么您可能需要对 CruiseControl 配置文件进行一些处理。可能在项目配置中使用动态值。

http://www.cruisecontrolnet.org/projects/ccnet/wiki/Dynamic_Values

The easiest solution seems to be, rename your stable directories. If you only have one stable current version, then you should only have one stable directory.

If you need to keep the last 3 or 4 stable versions, setup 3 or 4 stable directories and a Cruisecontrol project for each.

If you want the build machine to automatically build the version with the latest date, and use that as the "stable" build, then you might need to work some magic with the CruiseControl config file. Possibly using Dynamic Values in the project config.

http://www.cruisecontrolnet.org/projects/ccnet/wiki/Dynamic_Values

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文