阻止用户在mercurial中推送稳定分支

use*_*653 4 mercurial mercurial-hook

我刚开始使用Mercurial作为源控制系统.我正在考虑使用类似于此处概述的工作流程:http://stevelosh.com/blog/2010/05/mercurial-workflows-stable-default/.基本上,有两个分支,一个是"稳定",一个是"发展".所有开发都将在"开发"分支上完成,并且只有在经过测试并准备发布时才会合并到"稳定"分支中.

o | v2.0
|\|
| o added new feature
o | V1.0
|\|
| o added new feature
| |
| o fixed bug
o |
Run Code Online (Sandbox Code Playgroud)

我想阻止开发人员意外地将更改推送到稳定分支.我怎样才能做到这一点?我知道有一些方法可以勾勒出某些Mercurial事件,但如果它改变了稳定分支,哪一个可以拒绝推动?如何检测钩子内某些分支的变化?

顺便说一句,我正在运行Windows 7.

UPDATE

感谢criswel的回答 - 它指出了我正确的方向.原来ACL扩展(mercurial附带)解决了这个问题.我在主repo的'.hg'文件夹中编辑了'hgrc'文件,如下所示:

[extensions]
acl = 

[hooks]
pretxnchangegroup.acl = python:hgext.acl.hook

[acl]
sources = push

[acl.deny.branches]
stable = *
Run Code Online (Sandbox Code Playgroud)

这会阻止任何人对稳定分支进行更改并将其推送到主仓库.

小智 6

听起来你想要的是ACL扩展,它应该包含在你的Mercurial安装中.