У меня есть идея заблокировать репозиторий от пользователей, продвигающих файлы в него при наличии сценария блокировки в рычаге обновления МЕРЗАВЦА, так как нажатие может только распознать идентификатор пользователя как аргументы а не ответвления. Таким образом, я могу заблокировать весь repo, который просто блокирует каталог.
Существует ли способ заблокировать определенное ответвление в МЕРЗАВЦЕ?
Или есть ли способ, которым может определить Рычаг Обновления, от которого ответвления пользователь продвигает и к которому ответвлению продвинут код?
Инструмент, подобный гитолиту, имеет такую особенность, как мне кажется: http://github.com/sitaramc/gitolite
Хук update, из документации:
Хук выполняется один раз для каждой обновляемой ссылки и принимает три параметра:
- имя обновляемой ссылки,
- старое имя объекта, сохраненное в ссылке,
- и новое имя объекта, которое должно быть сохранено в ссылке.
Так что... да, он точно знает, какая ветвь будет оттеснена, и может просто проверить этот параметр и выйти из строя, если не хочет, чтобы ветвь была оттеснена.
А если вы хотите (разумно) сделать это до того, как пользователь загрузил объекты, вы можете использовать хук pre-receive:
Этот хук выполняется один раз для операции получения. Он не принимает аргументов, но для каждой обновляемой ссылки получает на стандартный ввод строку формата:
SP
SP
LF
где
- старое имя объекта, хранящееся в ссылке,
- новое имя объекта, которое будет храниться в ссылке, и
- полное имя ссылки.
(это пробелы и перевод строки)