3

precommit_bad_branchをインポートするという名前のフック関数がありhook_utilsます。コミット経由で呼び出すprecommit_bad_branchと、次のエラー メッセージが表示されます。

error: precommit.branch_check hook raised an exception: No module named hook_utils
abort: No module named hook_utils!

hook_utilsからの呼び出しは許可されていないようですprecommit_bad_branch。Mercurial を使用せずに明示的に呼び出すと、コードは正常に機能します。

私のフックが別のファイルからコードを呼び出すことは可能ですか?

私の hgrc フック部分は次のようになります。

[hooks]
precommit.branch_check = python:C:\workspaces\hg_hooks\next_hooks.py:precommit_bad_branch
precommit.debug_code_check = python:C:\workspaces\hg_hooks\common_hooks.py:precommit_contains_debug_code
preupdate.merge_check = python:C:\workspaces\hg_hooks\next_hooks.py:preupdate_bad_merge
4

1 に答える 1

2

C:\workspaces\hg_hooksディレクトリをあなたに置くと、PYTHONPATH書き込みができるようになります

[hooks]
precommit.branch_check = python:next_hooks.precommit_bad_branch

構成ファイルで、次のこともできます

import hook_utils

ファイルを含む任意の Python ファイル内next_hooks.py

または、おそらく次のようなコードを使用して、sys.pathから変更することもできます。next_hooks.py

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

import hook_utils
于 2010-10-27T12:03:34.257 に答える