Extensão Mercurial ACL: permite todos os usuários em todas as filiais, exceto uma ramificação que é apenas para usuários específicos

Extensão Mercurial ACL: permite todos os usuários em todas as filiais, exceto uma ramificação que é apenas para usuários específicos

Quero usar a extensão ACL para permitir que apenas a equipe de controle de qualidade faça pushes e commits na ramificação estável, sem impor restrições a outras ramificações. No entanto, não vejo como fazer isso com as listas de negação e permissão, pois me parece que precisaria especificar em [acl.deny.branches] uma entidade equivalente a "todos os usuários, exceto grupo ____", o que não creio ser possível. O conjunto de todos os usuários e outras ramificações é aberto e não é conhecido antecipadamente (apenas o conjunto de pessoas de controle de qualidade é conhecido e a ramificação restrita), portanto, não posso simplesmente listar todos os usuários em uma lista de negações para a ramificação restrita. ou todas as ramificações = * em uma lista de permissões.

Além disso, ao usar a extensão ACL devo desabilitar permit_push = * no hgweb.config/hgrc? Não sei se isso, ou a extensão ACL, tem precedência. Vi em uma lista de discussão de 2011 que a diretiva hgrc tem precedência, mas isso pode estar errado ou desatualizado, então gostaria de confirmar.

[Editar]

Vejo que outras pessoas se depararam com esse tipo de problema:http://mercurial.808500.n3.nabble.com/PATCH-acl-support-negating-the-list-of-users-groups-with-leading-quot-quot-td2447281.html Ao final deste tópico, parece que nada foi decidido.

Responder1

Por recomendação do canal #mercurial, procurei a fonte da extensão. E, com certeza, a negação é suportada pelo !operador. A solução então foi simples 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

Eu editei a documentação do wiki emhttp://mercurial.selenic.com/wiki/AclExtensionobservar a capacidade de negar.

informação relacionada