2012-06-22 48 views
2

我需要Mercurial中的git post-receive鉤子的等價物,所以我可以通知其他服務已經對存儲庫進行了推送。相當於git post-receive鉤子的Hg

我需要在我的鉤子中很簡單:最後一個變更集的變更集版本。

當然我明白與git的區別在於ref不會被命名,並且可能有多個頭被推送到存儲庫。我可能會確定。

我現在不想要的是當前使用hg incoming鉤子實現的行爲:我修改了每個推送的變更集。

那麼,總結一下,hg什麼是上次推送提交通知庫的最佳方式?

編輯:我們的目標是從資源庫通知其他服務來,因爲新的代碼已經到來。但我不希望服務拉動推動中的每個變更集

回答

2

基本上,它聽起來像你想要使用changegroup掛鉤。它就像incoming掛鉤,但只會觸發一次更改。它爲您提供第一個$HG_NODE的新變更集的ID,但我不確定這是否適合您。

參見:http://www.selenic.com/mercurial/hgrc.5.html#hooks

這是一個有點我不清楚哪個變更集你的意思通過「最後」變更。由於變更集可以一次添加到多個頭,最後一個變更集可以在任何分支上,所以它不是用於說明更新的非常有用的信息。

如果您想確定哪些變更集自上次推送以來是新增的,那麼擁有第一個變更集即使不是更好也適合您(因爲它允許您在不知道先前推送的情況下識別新變更集)。

但是,如果您確實想知道最後一個變更集的ID,則可以從鉤子調用以下命令:hg tip --template "{node}"。有關更多信息,請參閱hg help tip

如果您提供了一些關於您想要如何精確使用這些信息的背景知識,那麼我可以就如何最好地處理這個問題給出一個更明確的建議。

+0

好的我想我會用'changegroup'去應對它。謝謝。 –