我正在设置Hudson / Mercurial堆栈以进行开发。我有一个使用案例是“作为开发人员,我想将我的本地沙箱更新为Hudson的特定内部版本号,因此我可以[修复错误,调试问题,创建分支版本的代码等]。 “
因此,如果我在Hudson上看到构建#49,如何将我的本地Mercurial仓库更新为用于构建#49的相同源代码?
注意:我查看了Mercurial标签,但它们似乎不太合适。它们需要提交,因此似乎提交会弄脏历史记录(开发人员的每次提交都会显示标记操作的后续提交)。如果这是最好的,我想我将不得不忍受它,但希望有更好的东西。可能仍会使用标签进行发布。
答案 0 :(得分:4)
好的,这是我最终得到的解决方案:
使用Description Setter插件,我将成功和失败的构建描述都设置为“Mercurial $ {MERCURIAL_REVISION}”。结果是当前的Mercurial SCM插件将此环境变量设置为父变更集ID。
然后我可以查看Hudson上的构建,如果需要,可以获取变更集ID并在我的本地仓库上执行“hg update”以获取该代码版本。
请注意,在Mercurial插件问题跟踪器中,有一些关于将其更改为HG_REVISION并添加其他环境变量的讨论,因此这可能会在将来某个时候中断,但现在对我有用。
答案 1 :(得分:1)
您可以使用hudson系统上的关键字扩展来将nodeid更新为构建的某些方面,可能包括工件名称。如果Hudson作业输出工件如下:myproject-2010-02-17-2dbf7575fa46.tar.gz你当然知道如何'hg update'到那个时间点。
关键字扩展,也许有点蚂蚁使这很容易做到。