Я хочу ограничить некоторые пользователи от нажатия на панели изменений в ветку репозитория по умолчанию. Если это возможно, как бы вы это сделали?Ограничение пользователей от нажатия наборов изменений по умолчанию (Mercurial)
1
A
ответ
4
ACL extension должен работать на вас. Однако вам необходимо учитывать следующие соображения:
Расширение должно быть включено в репозиториях сервера. То есть,
hgrc
файл каждого обслуживаемого хранилища должны иметь настройки ACL определены:[extensions] acl = [hooks] pretxnchangegroup.acl = python:hgext.acl.hook [acl] sources = serve [acl.deny.branches] default = user1, user2, user3
Эти пользователи, которые имеют толчок отказывают в система пользователей. То есть имя пользователя берется из учетных данных, предоставленных веб-сервером в вашем случае. Он имеет ничего, чтобы сделать с полем
Author:
в метаданных совершения.- Вы можете разрешить или запретить заполнение chagegroups. Если один из ваших отрицаемых пользователей нажимает на группу коммитов, содержащую , один фиксирует ветвь по умолчанию, весь push будет отклонен (даже если разрешены другие коммиты). Это не так странно, если ваши пользователи часто сливаются с ветвью по умолчанию.
Вы также можете написать свой собственный крюк pretxnchangegroup
, но вы не будете намного более способным, чем расширение ACL.
Пожалуйста, предоставьте дополнительную информацию о настройке вашего сервера. – C2H5OH
Мы храним наши репозитории на машине с установленным сервером Windows 2008. Версия mercurial на этой машине - 1.7.5. Все наши репозитории настроены для перехода в папку c: \ repository. Каждый пользователь имеет свой собственный клон на своих машинах. Пользователи только фиксируют на сервере, когда их работа завершена. Оттуда они должны войти в систему со своим именем пользователя и паролем, прежде чем они смогут фактически зафиксировать репозиторий. Я изучил использование [acl.deny.branches], но не имел никакой удачи в фактическом ограничении пользователей. – themaniac27