Ich möchte die ACL-Erweiterung verwenden, um nur dem QA-Team Pushes und Commits für den stabilen Zweig zu erlauben, während ich anderen Zweigen keine Beschränkungen auferlege. Ich weiß jedoch nicht, wie das mit den Deny- und Allow-Listen geht, da ich meiner Meinung nach in [acl.deny.branches] eine Entität angeben müssen müsste, die „alle Benutzer außer Gruppe ____“ entspricht, was meiner Meinung nach nicht möglich ist. Die Gruppe aller Benutzer und anderer Zweige ist offen und nicht im Voraus bekannt (nur die Gruppe der QA-Leute und der eine eingeschränkte Zweig sind bekannt), daher kann ich nicht einfach alle Benutzer in einer Deny-Liste für den eingeschränkten Zweig oder alle Zweige = * in einer Allow-Liste auflisten.
Sollte ich bei Verwendung der ACL-Erweiterung außerdem allow_push = * in hgweb.config / hgrc deaktivieren? Ich weiß nicht, ob das oder die ACL-Erweiterung Vorrang hat. Ich habe auf einer Mailingliste aus dem Jahr 2011 gelesen, dass die hgrc-Direktive Vorrang hat, aber das kann falsch oder veraltet sein, also möchte ich das bestätigen.
[Bearbeiten]
Ich sehe, dass andere auf dieses Problem gestoßen sind:http://mercurial.808500.n3.nabble.com/PATCH-acl-support-negating-the-list-of-users-groups-with-leading-quot-quot-td2447281.html Am Ende dieses Threads sieht es nicht so aus, als wäre irgendetwas entschieden worden.
Antwort1
Auf Empfehlung des #mercurial-Kanals habe ich mir den Quellcode für die Erweiterung angesehen. Und tatsächlich wird die Negation mit dem !
Operator unterstützt. Die Lösung war dann ganz einfach:
[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
Ich habe die Wiki-Dokumentation bearbeitet unterhttp://mercurial.selenic.com/wiki/AclExtensiondie Fähigkeit zur Negierung zur Kenntnis nehmen.