Хук Mercurial Changegroup варьируется в зависимости от веток - PullRequest
6 голосов
/ 22 января 2011

Существует ли в Mercurial хук, который, как и changegroup, позволяет выполнять действия одним нажатием, но позволяет мне выполнять несколько действий (или изменять их) в зависимости от того, на какие ветви влияют изменения в них?

Например, мне нужно уведомить слушателя по URL-адресу, когда делается push, но в идеале он будет уведомлять разные URL-адреса в зависимости от того, какая ветка затронута, не ограничивая их всех.

1 Ответ

7 голосов
/ 22 января 2011

Нет ловушек, специфичных для веток, но вы можете сделать эту логику в самой ловушке. Например, в вашем 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

Обратите внимание, что я использовал набор изменений, а не хук группы изменений. Одна группа изменений может иметь наборы изменений в нескольких ветвях, что усложнит логику. Если вы решите пойти по этому пути, вам нужно перейти от $HG_NODE к tip, чтобы воздействовать на каждый набор изменений в группе изменений.

...