Mercurialには、チェンジグループのように、プッシュでアクションを実行できるが、チェンジセットの影響を受けるブランチに基づいて複数のアクションを実行(または変更)できる既存のフックはありますか?
たとえば、プッシュが行われたときにURLでリスナーに通知する必要がありますが、理想的には、すべてを包括することなく、影響を受けるブランチに基づいてさまざまなURLに通知します。
Mercurialには、チェンジグループのように、プッシュでアクションを実行できるが、チェンジセットの影響を受けるブランチに基づいて複数のアクションを実行(または変更)できる既存のフックはありますか?
たとえば、プッシュが行われたときにURLでリスナーに通知する必要がありますが、理想的には、すべてを包括することなく、影響を受けるブランチに基づいてさまざまなURLに通知します。
ブランチ固有のフックはありませんが、フック自体でそのロジックを実行できます。たとえばあなたのhgrc
:
[hooks]
changeset = actions-by-branch.sh
そして、あなたはあなたactions-by-branch.sh
がするだろう:
#!/bin/bash
BRANCH=$(hg log --template '{branch}' -r $HG_NODE)
BRANCH=${BRANCH:-default} # set value to 'default' if it was empty
if [ "$BRANCH" == "default" ] ; then
do something
elif [ "$BRANCH" == "release" ] ; then
do something else
else
do a different thing
fi
changegroupフックではなくチェンジセットを使用したことに注意してください。単一のチェンジグループが複数のブランチにチェンジセットを持つ可能性があるため、ロジックが複雑になります。そのルートに進むことにした場合は、チェンジグループ内の各チェンジセットに対応するために、$HG_NODE
すべての方法からループする必要があります。tip