0

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

  • 我正在使用 Mercurial 进行代码共享和版本控制
  • 几个用户将通过 ssh 共享/修改从/向中央存储库拉/推

到这里我才开始工作。我现在想要的是控制其他用户的推送,如果我接受更改,则可以使用“允许推送”功能。

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

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

(也许有一个简单的解决方案,我没有任何复杂性)

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

我阅读了有关 hg-review 的内容,但我不确定它是否能满足我的要求。

有什么建议吗?

非常感谢,

阿德里安。

4

2 回答 2

1

如果您要手动批准传入的代码,我认为从其他用户那里提取是一个更好的工作流程。这样您就可以保持控制,并且可以使用hg incoming.

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

于 2013-05-25T05:30:37.010 回答
0

我现在想要的是控制其他用户的推送,如果我接受更改,则可以使用“允许推送”功能。

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

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

一个更强大的替代方案是拥有两个中央存储库,一个允许所有人推送,第二个只有您可以推送到:用户推送到repo1;您审查并repo2酌情推送;用户从repo2. Mercurial 通过允许您定义单独的路径default-pushdefault(然后仅用于拉动)使这变得容易。

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

于 2013-05-25T20:05:53.003 回答