我需要 Mercurial 中相当于 git post-receive
的钩子(Hook),这样我就可以通知另一个服务已将推送推送到存储库。
我的钩子(Hook)中需要的很简单:最后一个变更集的变更集修订版。
当然我知道与git的区别在于ref
不会被命名,并且可以有多个头推送到存储库。我可能对此感到满意。
我目前不想要的是我当前使用 hg传入
钩子(Hook)实现的行为:我对每个推送的变更集都有修订。
那么,总而言之,hg
收到上次推送到存储库的提交的通知的最佳方式是什么?
编辑:目标是通知另一个服务从存储库中 pull ,因为新代码已到达。但我不希望服务为推送
中的每个变更集 pull最佳答案
基本上,听起来您想使用 changegroup
Hook 。它类似于 incoming
钩子(Hook),但仅针对更改包触发一次。它为您提供了 $HG_NODE
中第一个新变更集的 ID,但我不确定这是否适合您。
参见:http://www.selenic.com/mercurial/hgrc.5.html#hooks
我有点不清楚“最后一个”变更集到底指的是哪个变更集。由于变更集可能会同时添加到多个头,最后一个变更集可能位于任何分支上,因此对于更新来说,这并不是非常有用的信息。
如果您想确定自上次推送以来哪些变更集是新的,那么拥有第一个变更集即使不是更好,也同样适合您(因为它允许您在不了解先前推送的情况下识别新的变更集)。
但是,如果您确实想知道最后一个变更集的 ID,可以从 Hook 调用以下命令:hg Tip --template "{node}"
。有关详细信息,请参阅 hg 帮助提示
。
如果您提供一些关于您想要准确使用此信息的背景信息,那么我可以就如何最好地处理该问题提供更明确的建议。
关于git - Hg 相当于 git post-receive hook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11151425/