Mercurial ACL-Erweiterung: Erlauben Sie allen Benutzern alle Zweige außer einem Zweig, der nur für bestimmte Benutzer bestimmt ist.

Mercurial ACL-Erweiterung: Erlauben Sie allen Benutzern alle Zweige außer einem Zweig, der nur für bestimmte Benutzer bestimmt ist.

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.

verwandte Informationen