7

Mercurialには、チェンジグループのように、プッシュでアクションを実行できるが、チェンジセットの影響を受けるブランチに基づいて複数のアクションを実行(または変更)できる既存のフックはありますか?

たとえば、プッシュが行われたときにURLでリスナーに通知する必要がありますが、理想的には、すべてを包括することなく、影響を受けるブランチに基づいてさまざまなURLに通知します。

4

1 に答える 1

8

ブランチ固有のフックはありませんが、フック自体でそのロジックを実行できます。たとえばあなたの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

于 2011-01-22T20:34:05.780 に答える