分岐仕様フックはありませんが、フック自体でそのロジックを実行できます。あなたの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
注意してください。 1つの変更グループに複数のブランチ上にチェンジセットを持たせることができ、ロジックが複雑になります。そのルートに行くことを決めたら、$HG_NODE
からtip
にループする必要があります。これは、変更グループの各チェンジセットに作用します。
'$ {BRANCH:= default}'は 'BRANCH = $ {BRANCH:= default}'にする必要があります。 – palacsint
これは書かれたとおりに動作します。 "$ {parameter:= word} デフォルト値を代入する:パラメータが設定されていないかヌルの場合、単語の拡張が のパラメータに割り当てられ、パラメータの値が代入されます。このようにパラメータを割り当てることはできません。もっと冗長な代入文が必要だった場合、 ':='の代わりに ':'を使います。 –
問題はわかった。 Bashは '$ BRANCH'の値をコマンドとして実行しようとします。そのため、私は 'mybranchname:command not found'エラーメッセージを得ました。したがって、このエラーを回避するには、代入が必要か、bash no-op( ':$ {BRANCH:= default}')を使用します。 – palacsint