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

Stop users pushing to stable branch in mercurial

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

o | v2.0
|\|
| o added new feature
o | V1.0
|\|
| o added new feature
| |
| o fixed bug
o |

我想阻止开发人员不小心将更改推送到稳定分支。我怎样才能做到这一点?我知道有一些方法可以连接到某些 Mercurial 事件,但是如果它对稳定分支进行了更改,哪个可以拒绝推送?我如何才能检测到钩子内的某些分支发生了变化?

我是运行 Windows 7 岁。

更新

感谢 criswel 的回答 - 它为我指明了正确的方向。事实证明,ACL 扩展(mercurial 附带)解决了这个问题。我将主仓库的“.hg”文件夹中的 'hgrc' 文件编辑为如下所示:

[extensions]
acl = 

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

[acl]
sources = push

[acl.deny.branches]
stable = *

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

听起来您想要的是 ACL extension,它应该包含在您安装的 Mercurial 中。

另一种方法是使用 Mercurial 的 mercurial-server 第三方扩展(它更像是 Mercurial 的包装器)来管理开发人员的访问权限。但是,在 Windows 上设置可能更困难,因为它需要使用 Cygwin。