Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止用户向mercurial中的稳定分支推送_Mercurial_Mercurial Hook - Fatal编程技术网

停止用户向mercurial中的稳定分支推送

停止用户向mercurial中的稳定分支推送,mercurial,mercurial-hook,Mercurial,Mercurial Hook,我刚刚开始使用Mercurial作为源代码控制系统。我正在考虑使用类似于此处概述的工作流:。基本上,它有两个分支,一个“稳定”和一个“发展”。所有开发都将在“开发”分支上完成,只有在测试并准备发布时才合并到“稳定”分支中 o | v2.0 |\| | o added new feature o | V1.0 |\| | o added new feature | | | o fixed bug o | 我想阻止开发人员意外地将更改推送到稳定分支。我怎样才能做到这一点?我知道有一些方法可以与某些

我刚刚开始使用Mercurial作为源代码控制系统。我正在考虑使用类似于此处概述的工作流:。基本上,它有两个分支,一个“稳定”和一个“发展”。所有开发都将在“开发”分支上完成,只有在测试并准备发布时才合并到“稳定”分支中

o | v2.0
|\|
| o added new feature
o | V1.0
|\|
| o added new feature
| |
| o fixed bug
o |
我想阻止开发人员意外地将更改推送到稳定分支。我怎样才能做到这一点?我知道有一些方法可以与某些变化无常的事件挂钩,但是如果它改变了稳定分支,哪一种方法可以拒绝推动呢?我怎样才能发现钩子中的某些分支发生了变化

顺便说一下,我正在运行Windows7

更新 感谢克里斯威尔的回答——它为我指明了正确的方向。原来ACL扩展(mercurial附带)解决了这个问题。我在主repo的“.hg”文件夹中编辑了“hgrc”文件,如下所示:

[extensions]
acl = 

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

[acl]
sources = push

[acl.deny.branches]
stable = *

这阻止了任何人对稳定的分支机构进行更改,并将其推到主回购

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

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

这是一个棘手的问题。我们从分支创建分支,然后通过bitbucket创建请求,请求充当审批层,然后将更改向下合并到创建更改的主分支中。你可以阻止用户对主分支做任何事情,但不能选择性地做任何事情。@criswelll谢谢你的回答-这为我指明了正确的方向!详细的解决方案现在包含在我的问题中。链接已更改。以下是当前指向