mercurial - 如何在 Mercurial 中验证和强制执行提交消息?

标签 mercurial commit policy commit-message mercurial-hook

使用一组正则表达式验证提交消息需要哪些步骤? 我们希望在半集中式设置中工作,因此我需要一个针对开发人员克隆(本地存储库)和中央克隆(全局存储库)的解决方案。我读到Mercurial Hooks但我有点迷失如何将所有东西放在一起。

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

为了双重安全,我需要对我的全局存储库进行类似的验证。应该不可能推送到未验证的全局存储库提交。我可以手动配置它 - 这是一次性工作。

我使用的是 Windows,因此安装除 TortoiseHG 之外的任何内容不应该被要求。已经是一场争夺Mercurial的战斗了。部署。不欢迎任何其他依赖项。

最佳答案

您可以使用Spellcheck示例作为起点。在每个开发者的配置中,您需要使用以下钩子(Hook):

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

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

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

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

关于mercurial - 如何在 Mercurial 中验证和强制执行提交消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7506559/

相关文章:

deployment - Mercurial自动化部署

java - 安全性:Japplet 中的访问被拒绝异常

c++ - 在组策略中设置最小密码长度

commit - 将修订与 Redmine 问题相关联

eclipse - 将文件提交到 SVN 存储库的问题

commit - 如何延长 GitKraken 提交摘要长度

java - 尝试使用 javazoom 播放 MP3 文件并收到错误消息 "unable to load resource ' sfd.ser”

mercurial - 如何检测提交是否可推送

svn - 是否可以关闭 'svn export' 的关键字替换?

mercurial - 在不使用 --svn 的情况下修复 HgSubversion Repo