如何在Mercurial中验证和实施提交消息?

时间:2011-09-21 21:00:13

标签: mercurial commit policy commit-message mercurial-hook

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

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

为了保证双重安全,我需要对global repository进行类似的验证。不应该进入未验证的global repository提交。我可以手动配置 - 这是一次性工作。

我在Windows上,因此不需要安装除TortoiseHG之外的任何内容。部署Mercurial已经是一场斗争。任何其他依赖项都不受欢迎。

1 个答案:

答案 0 :(得分:2)

您可以使用Spellcheck示例作为起点。在每个开发人员的配置中,您需要使用以下挂钩:

pretxnchangegroup - 在一组更改集从另一个存储库进入本地但在它成为永久存储库之前运行。

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

对于集中式仓库,我认为您只需要pretxnchangegroup挂钩,除非提交也可以在服务器上进行。但是,如果远程仓库是拒绝推送的一个或多个变更集的远程仓库,则每个开发人员都需要Histedit扩展名。此扩展允许他们“编辑”已提交的更改集。我认为在大多数情况下,本地钩子会遇到问题,但就像你说的那样,“以防万一。”

details about handling events with hooks可以找到更多Hg Book