私はしばらくの間それに取り組んできましたが、うまくいかないようです。
カリテアのドキュメントによると:
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 設定を使用する方法を誰かが知っている場合、その例は素晴らしいでしょう。元の質問はこちら.