2010-02-18 50 views
4

我正在为开发建立Hudson/Mercurial堆栈。我使用的一个用例是“作为一名开发人员,我想将我的本地沙箱更新为Hudson的特定内部版本号,以便我可以[修复一个bug,调试问题,创建分支版本的代码等]。 “因此,如果我在Hudson上看到#49版本,我该如何将本地Mercurial回购更新为与用于构建#49的源代码相同的源代码?跟踪从哈德森到Mercurial Repo的构建

注:我看过Mercurial标签,但它们看起来不太合适。他们需要一个提交,所以看起来提交会弄脏历史(开发人员的每次提交都会显示标记操作的后续提交)。如果这是最好的,我想我必须忍受它,但希望有更好的东西。可能仍会使用标签进行发布。

回答

4

好吧,这里是我结束了解决方案:

使用说明二传手插件,我同时设置了成功和失败构建描述“水银$ {} MERCURIAL_REVISION”。发现当前的Mercurial SCM插件将此环境变量设置为父变更集标识。

然后我可以看看哈德森构建,并且如果需要的话,抢变更ID,做我的本地回购了“汞更新”来获得的代码修改。

请注意,在Mercurial插件问题跟踪器中,有一些讨论将此更改为HG_REVISION,并添加其他环境变量,因此这可能会在未来的某个时间点中断,但现在对我来说可行。

1

您可以使用哈德森系统上的关键字扩展更新NODEID到构建的某些方面,可能包括神器的名字。如果Hudson作业输出工件如下所示:myproject-2010-02-17-2dbf7575fa46.tar.gz您当然知道如何'hg update'到那个时间点。

关键字扩展和可能有点ant-fu使这很容易做到。