Как я могу узнать, была ли команда Mercurial передана опция через внешний хук? - PullRequest
1 голос
/ 04 октября 2010

В идеале я хотел бы получить ответ на заглавный вопрос.

Однако для моего конкретного случая у меня есть Perl-скрипт, который я хочу запустить с хука precommit, и я бы хотелзнать, был ли Mercurial вызван с параметром -A, переданным команде commit (например, hg commit -A), и если это не так, возможно ли "передать" его в этот момент?

1 Ответ

2 голосов
/ 04 октября 2010

Это покажется немного глупым, но в дополнение к хуку precommit для каждой команды есть хук до-XXXX (и после-XXXX), который получает несколько различных переменных:

pre-<command>

Запустить перед выполнением связанного команда. Содержание команды строка передается как $ HG_ARGS. Успешно разобран аргументы командной строки передаются как $ HG_PATS и $ HG_OPTS. Они содержат строковые представления данных внутренне передано. $ HG_OPTS - это словарь опций (с неопределенными параметрами, установленными на их по умолчанию). $ HG_PATS - это список аргументы. Если крюк возвращается сбой, команда не выполняется и Mercurial возвращает сбой Код.

Так что вместо этого сделайте pre-commit ловушку и проверьте эти переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...