Extensión Mercurial ACL: permite a todos los usuarios en todas las ramas excepto una rama que es solo para usuarios específicos

Extensión Mercurial ACL: permite a todos los usuarios en todas las ramas excepto una rama que es solo para usuarios específicos

Quiero usar la extensión ACL para permitir que solo el equipo de control de calidad realice envíos y confirmaciones en la rama estable, sin imponer restricciones a otras ramas. Sin embargo, no veo cómo hacer eso con las listas de denegar y permitir, ya que me parece que necesitaría poder especificar en [acl.deny.branches] una entidad que sea equivalente a "todos los usuarios excepto grupo ____", lo cual no creo que sea posible. El conjunto de todos los usuarios y otras ramas está abierto y no se conoce de antemano (solo se conoce el conjunto de personas de control de calidad y la rama restringida), por lo que no puedo enumerar todos los usuarios en una lista de denegación para la rama restringida. , o todas las ramas = * en una lista de permitidos.

Además, cuando uso la extensión ACL, ¿debería desactivar enable_push = * en hgweb.config/hgrc? No sé si eso, o la extensión ACL, tiene prioridad. He visto en una lista de correo de 2011 que la directiva hgrc tiene prioridad, pero puede ser incorrecta o estar desactualizada, así que me gustaría confirmarlo.

[Editar]

Veo que otros se han encontrado con este tipo de problema:http://mercurial.808500.n3.nabble.com/PATCH-acl-support-negating-the-list-of-users-groups-with-leading-quot-quot-td2447281.html Al final de este hilo, no parece que se haya decidido nada.

Respuesta1

Por recomendación del canal #mercurial, miré la fuente de la extensión. Y, efectivamente, la negación es apoyada por el !operador. La solución entonces fue tan simple como:

[extensions]
hgext.acl =

[hooks]
pretxncommit.acl = python:hgext.acl.hook
pretxnchangegroup.acl = python:hgext.acl.hook

[acl.groups]
reviewers = Max, Moritz

[acl.deny.branches]
stable = !@reviewers

He editado la documentación wiki enhttp://mercurial.selenic.com/wiki/AclExtensionpara notar la capacidad de negar.

información relacionada