我不是Mercurial的高级用户,需要就以下可能是典型的问题提出一些建议:
我有一些想法,但我想知道这种情况下的建议是什么。
(也许在一个分支和另一个我独自控制的分支中的原始推/拉...但如果几个用户可以接受其他人的推送则看起来不太好)
(也许有一个简单的解决方案,我什么都不复杂)
即使不完美也不想使用商业第三方工具(例如审核委员会),我会寻找易于设置的内容
我读过有关hg-review的内容,但我不确定它能做我正在寻找的内容。
有什么建议吗?
非常感谢,
阿德里安。
答案 0 :(得分:1)
如果您要手动批准传入的代码,我认为从其他用户提取是一个更好的工作流程。这样您就可以继续控制,并且可以使用hg incoming
验证变更集消息。
您还可以编写一个钩子以防止推送。但是,必须有某种编程逻辑来接受/拒绝推送,这可能不太现实。请查看http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html以获取有关挂钩的详细信息。
答案 1 :(得分:0)
我现在想要的是控制其他用户的推送,如果我接受更改,就像“允许推送”功能一样。
您如何知道是否接受更改?审核更改的唯一可行方法是以某种方式将它们放入您的(个人)存储库。
如果你的贡献者是值得信赖的团队成员,你可以指导他们发展并推进分支机构;只有您可以将他们的贡献合并到default
分支(或者您委派给“干净”的任何分支)。
更强大的替代方案是拥有两个中央存储库,一个允许来自每个人的推送,另一个只允许推送到:用户推送到repo1
;如果合适,您可以查看并推送到repo2
;用户从repo2
开始。 Mercurial允许您定义单独的路径default-push
和default
(这些路径仅用于拉动),从而简化了这一过程。
正如@Stephen建议的那样,第三种方式是从贡献者那里撤出而不是让他们推动。这就是bitbucket上托管的存储库的工作方式,因此如果此模型吸引您,您可以考虑在那里托管您的项目。