我们正在使用 mercurial,现在我们想引入 precommit 钩子以保持代码干净。我们希望每个人都能以某种方式获得钩子,但我们也希望能够以某种集中的方式更新它。Mercurial 没有版本控制钩子,那么我们的替代选择是什么?你们中有人找到解决方案吗?提前致谢!
内米
我们正在使用 mercurial,现在我们想引入 precommit 钩子以保持代码干净。我们希望每个人都能以某种方式获得钩子,但我们也希望能够以某种集中的方式更新它。Mercurial 没有版本控制钩子,那么我们的替代选择是什么?你们中有人找到解决方案吗?提前致谢!
内米
挂钩不会被克隆(详见“ Mercurial 中的版本控制扩展配置”),但您可以拥有一个通用hgrc
文件(请参阅hgrc
语法):
一行表格
%include file
将文件包含到当前配置文件中
然后,您可以在该中央配置文件中修改该[hooks]
部分。
如果您可以控制他们的桌面(这是标准的企业安装),您可以将钩子放在系统范围的条目中/etc/mercurial/hgrc
或/etc/mercurial/hgrc.d/ourcommithook
如果您正在远程管理机器,您可以使用非常出色的puppet或构建您自己的 .rpm、.deb 或 .msi 安装程序来自动执行此操作,这些安装程序都安装了 Mercurial 并将每个人的挂钩放置在机器全局配置中。
看看projrc 扩展。然后,您只需让设计人员在他们的 ~/.hgrc 文件中放置少量公共行,它们将自动推送您在集中式存储库的 repo/.hg/projrc 文件中放置的任何内容。
你仍然需要一个公共的地方来放置这些钩子,但你可能已经有某种用户都挂载的共享挂载驱动器,对吧?或者您可以有一个“工具”存储库,每个人都必须在标准位置签出。
史蒂夫