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.
感谢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)
这会阻止任何人对稳定分支进行更改并将其推送到主仓库.