我刚开始使用Mercurial作为源控制系统。我正在考虑使用类似于此处列出的工作流程:http://stevelosh.com/blog/2010/05/mercurial-workflows-stable-default/。基本上,有两个分支,一个是“稳定的”和一个是“发展的”。所有开发都将在'开发'分支上完成,并且只有在测试并准备发布时才合并到'稳定'分支中。阻止用户推送到mercurial的稳定分支
o | v2.0
|\|
| o added new feature
o | V1.0
|\|
| o added new feature
| |
| o fixed bug
o |
我想阻止开发人员意外地将更改推送到stable分支。我怎样才能做到这一点?我知道有些方法可以挂钩某些Mercurial事件,但是如果对稳定分支做出更改,哪一个可以拒绝推送?我怎么能检测到钩子内某些分支已经发生了变化?
我正在运行Windows 7。
UPDATE
感谢criswel的回答 - 它指出了我的正确方向。原来,ACL扩展(附带mercurial)解决了这个问题。我编辑在主回购的“.hg”文件夹中的“hgrc”文件看起来像这样:
[extensions]
acl =
[hooks]
pretxnchangegroup.acl = python:hgext.acl.hook
[acl]
sources = push
[acl.deny.branches]
stable = *
此进行更改,以稳定的分支,他们推到主回购停止任何人。
这是一个棘手的问题。我们从分支创建分支,然后通过bitbucket创建拉动请求,作为审批层,然后将更改合并到创建它们的主分支中。您可以阻止用户对主要分支机构进行任何操作,但不能有选择地进行。 – beauXjames