我想使用 ACL 擴展,以便僅允許 QA 團隊推送並提交到穩定分支,同時不對其他分支施加任何限制。但是,我不知道如何使用拒絕和允許列表來做到這一點,因為在我看來,我需要能夠在 [acl.deny.branches] 中指定一個實體,該實體相當於“除組____”,我認為這是不可能的。所有用戶和其他分支的集合是開放的並且事先不知道(只知道 QA 人員的集合和一個受限制的分支),因此我不能只列出受限制分支的拒絕列表中的所有用戶,或允許列表中的所有分支= *。
另外,當使用 ACL 擴充功能時,我應該在 hgweb.config / hgrc 中停用 allowed_push = * 嗎?我不知道它或 ACL 擴充是否優先。我在 2011 年的郵件列表中看到 hgrc 指令優先,但這可能是錯誤的或過時的,所以我想確認一下。
[編輯]
我看到其他人也遇到過此類問題:http://mercurial.808500.n3.nabble.com/PATCH-acl-support-negating-the-list-of-users-groups-with-leading-quot-quot-td2447281.html 到這篇文章結束時,似乎還沒有做出任何決定。
答案1
根據 #mercurial 頻道的推薦,我查看了該擴充功能的源代碼。果然,運算子支援否定!
。當時的解決方案很簡單:
[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
我已經編輯了維基文檔http://mercurial.selenic.com/wiki/AclExtension注意否定的能力。