其他用户允许的hg push

时间:2013-05-24 16:32:50

标签: mercurial push review

我不是Mercurial的高级用户,需要就以下可能是典型的问题提出一些建议:

  • 我使用Mercurial进行代码共享和版本控制
  • 多个用户将通过ssh
  • 分享/修改从/向中央仓库进行拉/推
直到这里我才开始工作。我现在想要的是控制其他用户的推送,如果我接受更改,就像“允许推送”功能一样。

我有一些想法,但我想知道这种情况下的建议是什么。

(也许在一个分支和另一个我独自控制的分支中的原始推/拉...但如果几个用户可以接受其他人的推送则看起来不太好)

(也许有一个简单的解决方案,我什么都不复杂)

即使不完美也不想使用商业第三方工具(例如审核委员会),我会寻找易于设置的内容

我读过有关hg-review的内容,但我不确定它能做我正在寻找的内容。

有什么建议吗?

非常感谢,

阿德里安。

2 个答案:

答案 0 :(得分:1)

如果您要手动批准传入的代码,我认为从其他用户提取是一个更好的工作流程。这样您就可以继续控制,并且可以使用hg incoming验证变更集消息。

您还可以编写一个钩子以防止推送。但是,必须有某种编程逻辑来接受/拒绝推送,这可能不太现实。请查看http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html以获取有关挂钩的详细信息。

答案 1 :(得分:0)

  

我现在想要的是控制其他用户的推送,如果我接受更改,就像“允许推送”功能一样。

您如何知道是否接受更改?审核更改的唯一可行方法是以某种方式将它们放入您的(个人)存储库。

如果你的贡献者是值得信赖的团队成员,你可以指导他们发展并推进分支机构;只有您可以将他们的贡献合并到default分支(或者您委派给“干净”的任何分支)。

更强大的替代方案是拥有两个中央存储库,一个允许来自每个人的推送,另一个只允许推送到:用户推送到repo1;如果合适,您可以查看并推送到repo2;用户从repo2开始。 Mercurial允许您定义单独的路径default-pushdefault(这些路径仅用于拉动),从而简化了这一过程。

正如@Stephen建议的那样,第三种方式是从贡献者那里撤出而不是让他们推动。这就是bitbucket上托管的存储库的工作方式,因此如果此模型吸引您,您可以考虑在那里托管您的项目。