如果某个条件成立,我试图禁止推送到 Mercurial 存储库。但是,重要的是,如果用户使用push --force
,则推送无论如何都会通过。
我知道在进行推送的机器上使用pre-push
钩子很容易做到这一点,钩子将命令行参数传递给钩子。然而,由于钩子没有被传播,我不得不以某种方式将钩子分发给存储库的每个用户,并依赖他们不会弄乱它。
因此,我认为要走的路是prechangegroup
在存储库服务器上有一个钩子,它检查条件并在必要时中止推送,但我无法找到一种方法来获取用户在推送时使用的命令行参数这个钩子。有没有办法仅通过在存储库服务器上使用挂钩来完成此操作?
我知道pretxnchangegroup
如果最新变更集的提交消息遵循某种模式,则可能的解决方法是使用钩子并允许推送。但是,--force
从存储库用户的角度来看,该选项似乎要容易得多,因为它不会强迫他们潜在地进行虚拟提交以获取正确的消息。