我在Mercurial中需要等效的git post-receive
钩子,所以我可以通知另一个服务已经对存储库进行了推送。
我需要的东西很简单:上一个变更集的变更集修订版。
当然我理解与git的区别在于ref
不会被命名,并且可能有多个头被推送到存储库。我可能对此感到满意。
我目前不想要的是使用hg incoming
钩子进行当前实现的行为:我对每个推送的变更集进行了修订。
然后,总结一下,hg
最后一次被推送到存储库的最佳方式是什么?
编辑:目标是从存储库中通知另一个服务 pull ,因为新代码已经到达。但我不希望该服务在推送
中为每个变更集提取答案 0 :(得分:2)
基本上,听起来你想使用changegroup
钩子。它类似于incoming
钩子,但只对一组更改触发一次。它会在$HG_NODE
中为您提供第一个新变更集的ID,但我不确定这是否适合您。
请参阅:http://www.selenic.com/mercurial/hgrc.5.html#hooks
对我来说,有点不清楚你的变化集是指'最后'的变更集。由于变更集可以一次添加到多个磁头,最后一个变更集可以在任何分支上,因此它不是非常有用的信息,例如更新。
如果您想确定自上次推送以来哪些变更集是新的,那么第一个变更集应该适合您,如果不是更好(因为它允许您在不知道之前推送的情况下识别新变更集)。
但是,如果您真的想知道上一个变更集的ID,可以从钩子中调用以下命令:hg tip --template "{node}"
。有关详细信息,请参阅hg help tip
。
如果你提供一些关于你想要准确使用这些信息的背景知识,那么我可以就如何最好地处理这些信息给出一个更明确的建议。