【问题标题】:How to set up mercurial hooks in Kallithea如何在 Kallithea 中设置 mercurial hooks
【发布时间】:2016-05-23 12:53:07
【问题描述】:

我已经用了一段时间了,但我似乎无法让它工作。

根据 Kallithea 文档:

To add another custom hook simply fill in the first textbox with <name>.<hook_type> and the second with the hook path. Example hooks can be found in kallithea.lib.hooks.

所以我的第一次尝试是在 hooks.py 中添加一个新方法。基本上为了测试我想阻止所有推送到回购的钩子。所以我将使用 pretxnchangegroup 并返回非 0 非假值,如 Mercurial 文档所述

A hook that executes successfully must exit with a status of zero if external, or return boolean “false” if in-process. Failure is indicated with a non-zero exit status from an external hook, or an in-process hook returning boolean “true”. If an in-process hook raises an exception, the hook is considered to have failed.

所以我这样做了:

def myhook(ui, repo, **kwargs): return True

我在 Kallithea 钩子选项中将钩子添加到 GUI:

pretxnchangegroup <=> python:kallithea.lib.hooks.myhook

但是由于某种原因找不到该方法而失败了

abort: pretxnchangegroup hook is invalid ("kallithea.lib.hooks.myhook" is not defined)

所以我尝试将它放在另一个文件中(在 hooks.py 所在的同一个“lib”文件夹中)。创建了一个名为 canpush.py 的文件并在那里添加了相同的方法。我更改了挂钩路径以定位新文件名:

pretxnchangegroup <=> python:kallithea.lib.hooks.myhook

但是钩子没有触发,我可以毫无问题地推送到我的仓库。我计划在未来更改实际的钩子实现,将允许推送,但首先我需要使用 Kallithea 获得任何钩子功能。

我在这里做错了什么?

另外,如果有人知道如何在 Kallithea 中使用单个 repo 中的 hgrc 设置,那么一个例子会很棒。原问题here。

【问题讨论】:

    标签: mercurial mercurial-hook kallithea


    【解决方案1】:

    回答我自己的问题,但仅供参考。

    事实证明,设置很好,但出于绝望,我决定重新启动 kallithea 守护程序(文档中没有出现),基本上是在想“可能出了什么问题”——结果成功了!

    我猜在启动过程中,事情会被编译/缓存,并且钩子定义方法被找到并起作用(如果有人对 kallithea 重启时发生的事情有更好的解释,请分享)

    请记住,每次更改 hooks 文件后,kallithea 守护程序必须重新启动才能使 hooks 生效。

    sudo service kallithea restart

    【讨论】:

      【解决方案2】:

      阅读 kallithea 文档时我还不清楚的其他一点是,这些钩子是反复无常的钩子,它们并不是真正的 kallithea/rhodecode API,它一直都是反复无常的。

      这意味着关于如何编写文档的最佳文档来源是 http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-11-01
        • 2021-02-21
        • 2010-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多