1

私はしばらくの間それに取り組んできましたが、うまくいかないようです。

カリテアのドキュメントによると:

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 に新しいメソッドを追加することでした。基本的にフックをテストするには、レポへのすべてのプッシュを防止したいと考えています。したがって、mercurial のドキュメントに記載されているように、pretxnchangegroup を使用して、0 以外の false 以外の値を返します。

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 内の個々のリポジトリから hgrc 設定を使用する方法を誰かが知っている場合、その例は素晴らしいでしょう。元の質問はこちら.

4

2 に答える 2