4

使用一组正则表达式验证提交消息所需的所有步骤是什么?我们希望在半集中式设置中工作,因此我需要为开发人员克隆 ( local repository) 和我们的中央克隆 ( global repository) 提供解决方案。我读到了Mercurial Hooks,但我有点迷失如何将所有东西放在一起。

因为local repository我需要一种在我的开发人员之间分发验证脚本的方法。我知道克隆时钩子不会传播,所以我需要一种方法在每个新克隆中“启用”它们。它将作为我们PrepareEnvironement.bat脚本的一部分完成,我们无论如何都会在每个干净的克隆上运行。

为了双重安全,我需要对我的global repository. 应该不可能推动global repository未验证的提交。我可以手动配置它 - 这是一次性的工作。

我在 Windows 上,所以不需要安装TortoiseHG以外的任何东西。部署Mercurial已经是一场战斗。不欢迎任何其他依赖项。

4

1 回答 1

3

您可以使用拼写检查示例作为起点。在每个开发者的配置中,都需要用到以下钩子:

pretxnchangegroup- 在将一组变更集从另一个存储库引入本地之后,但在它变为永久之前运行。

pretxncommit- 在本地创建新的变更集之后但在它变为永久之前运行。

对于集中式存储库,我认为您只需要pretxnchangegroup钩子,除非服务器上也可以发生提交。但是,如果远程 repo 拒绝一个或多个被推送的变更集,您将需要每个开发人员的Histedit扩展。这个扩展允许他们“编辑”已经提交的变更集。我认为在大多数情况下,本地挂钩会解决问题,但就像您说的那样,“以防万一”。

更多关于使用钩子处理事件的细节可以在Hg Book中找到。

于 2011-09-22T10:38:41.523 回答