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脚本主机左右?)
在构建服务器上为每个新的稳定版本添加一个新项目是可能的,但它相当复杂且容易出错......
答案 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