Обновление, из документации:
Хук выполняется один раз для каждого обновления, которое будет обновлено, и принимает три параметра:
- имя обновляемой ссылки,
- старое имя объекта, сохраненное в ссылке,
- и новое имя объекта, которое будет сохранено в ссылке.
Так что ... да, он точно знает, какая ветвь выдвигается, и может просто проверить этот параметр и выйти из ошибки, если он не хочет, чтобы ветвь была нажата.
И если вы хотите (разумно) сделать это до того, как пользователь загрузит объекты, вы можете использовать ловушку предварительного получения:
Этот хук выполняется один раз для операции приема. Он не принимает аргументов, но для каждого обновляемого ссылки на стандартный ввод получает строку формата:
<old-value>
SP <new-value>
SP <ref-name>
LF
, где <old-value>
- старое имя объекта, сохраненное в ссылке, <new-value>
- новое имя объекта, которое будет сохранено в ссылке, а <ref-name>
- полное имя ссылки.
(это пробелы и перевод строки)