2016-05-23 25 views
0

私はしばらくそれをしてきましたが、私はそれを働かせることはできません。カリテアのドキュメントを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する新しい方法を追加しました。基本的にはフックをテストするために、私はレポにすべてのプッシュを防止したい。

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

そして、私はカリテアにGUIにフックを追加しました: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.

を述べたように、私は、だから私はこれをしなかったpretxnchangegroupを使用し、非0以外の値falseを返しますフックオプション:

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

このhoweve rは方法はだから私は(hooks.pyは同じ「LIB」フォルダに)別のファイルでそれを入れてみました

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

を見つけることができない何らかの理由で失敗したため。 canpush.pyという名前のファイルを作成し、そこに同じメソッドを追加しました。フックは誘発しない、と私は問題もなく私のレポにプッシュすることができますしかし

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

:私は、新しいファイル名を対象にフックパスを変更しました。私は将来の実際のフックの実装を変更する予定ですが、プッシュは許可されますが、最初に私はKallitheaで機能するフックを取得する必要があります。

私はここで間違っていますか?

また、誰かがKallithea内の個々のリポジトリからhgrc設定を使用する方法を知っていれば、その例は素晴らしいでしょう。元の質問here

答えて

0

自分の質問に答えるだけで、それを参考にしてください。

セットアップがうまくいったものの、絶望的な状況で、私はカリーテアデーモン(ドキュメンテーションのどこにもない)を再起動することを決めました。基本的に「何がうまくいかないかもしれない」と思っていました。

私は心の中でそう裸

(誰かがカリテアの再起動時に何が起こるかについてのより良い説明を持っている場合は、それを共有してください)、起動プロセス中に、物事がコンパイル/キャッシュされ、フックの定義方法が発見され、機能を取得推測フックが変更されるたびに、フックが効果を発揮するためには、kallitheaデーモンを再起動する必要があります。

sudo service kallithea restart

関連する問題