Hg相当于git post-receive hook

时间:2012-06-22 06:50:48

标签: git mercurial hook

我在Mercurial中需要等效的git post-receive钩子,所以我可以通知另一个服务已经对存储库进行了推送。

我需要的东西很简单:上一个变更集的变更集修订版。

当然我理解与git的区别在于ref不会被命名,并且可能有多个头被推送到存储库。我可能对此感到满意。

我目前不想要的是使用hg incoming钩子进行当前实现的行为:我对每个推送的变更集进行了修订。

然后,总结一下,hg最后一次被推送到存储库的最佳方式是什么?

编辑:目标是从存储库中通知另一个服务 pull ,因为新代码已经到达。但我不希望该服务在推送

中为每个变更集提取

1 个答案:

答案 0 :(得分:2)

基本上,听起来你想使用changegroup钩子。它类似于incoming钩子,但只对一组更改触发一次。它会在$HG_NODE中为您提供第一个新变更集的ID,但我不确定这是否适合您。

请参阅:http://www.selenic.com/mercurial/hgrc.5.html#hooks

对我来说,有点不清楚你的变化集是指'最后'的变更集。由于变更集可以一次添加到多个磁头,最后一个变更集可以在任何分支上,因此它不是非常有用的信息,例如更新。

如果您想确定自上次推送以来哪些变更集是新的,那么第一个变更集应该适合您,如果不是更好(因为它允许您在不知道之前推送的情况下识别新变更集)。

但是,如果您真的想知道上一个变更集的ID,可以从钩子中调用以下命令:hg tip --template "{node}"。有关详细信息,请参阅hg help tip

如果你提供一些关于你想要准确使用这些信息的背景知识,那么我可以就如何最好地处理这些信息给出一个更明确的建议。