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

时间:2011-11-17 10:39:38

标签: svn ant continuous-integration branch cruisecontrol

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

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

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

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

我们在Windows环境中使用CruiseControl(java版本)和ant来构建流程。但是,subversion服务器是linux。

在CVS中,我们会使用标签。这是我第一次在subversion中丢失标签。我可以标记分支,但为了使标记保持最新,我会删除/添加每个提交的标记到当前的稳定版本。也许一个提交钩子可以帮助,但有一个更简单的解决方案来自动化这个? (也许没有学习Windows脚本主机左右?)

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

2 个答案:

答案 0 :(得分:2)

也许您可以创建一个symbolink link来使/ 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

答案 1 :(得分:1)

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

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

如果您希望构建计算机自动构建具有最新日期的版本,并将其用作" stable"构建,然后您可能需要使用CruiseControl配置文件工作。可能在项目配置中使用动态值。

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