QA 팀만 안정적인 브랜치에 대한 푸시 및 커밋을 수행하고 다른 브랜치에는 제한을 두지 않도록 ACL 확장을 사용하고 싶습니다. 그러나 거부 및 허용 목록을 사용하여 이 작업을 수행하는 방법을 모르겠습니다. 제가 보기에는 [acl.deny.branches]에서 "다음을 제외한 모든 사용자"와 동일한 엔터티를 지정할 수 있어야 할 것 같습니다. 그룹 ____"은(는) 불가능하다고 생각합니다. 모든 사용자 집합과 다른 지점은 공개되어 있고 미리 알려지지 않았습니다(QA 담당자 집합만 알고 제한 지점은 하나). 따라서 제한된 지점에 대한 거부 목록에 모든 사용자를 나열할 수는 없습니다. , 또는 허용 목록의 모든 분기 = *입니다.
또한 ACL 확장을 사용할 때 hgweb.config / hgrc에서allow_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부정하는 능력에 주목하세요.