そのファイルを手動で実行して問題をトラブルシューティングするにはどうすればよいですか? 私のmailer.pyファイルもhooksフォルダーの下にあり、mailer.confはhooksフォルダーの外にあります。
それは簡単です。コマンドを手動で実行するだけです。
$ cd $REPOS #Where ever that is...
$ REV=230 #Whatever the revision number is
$ hooks/mailer.py commit . $REV mailer.conf
mailer.py を別のファイルにコピーして、いじってみることができます。いくつかの print ステートメントを追加し、デバッガーで実行します。たとえば、特定の送信メカニズムをデバッグする準備が整うまで、実際にすべてを開発者にメール送信しないように、プログラムの実際のメール部分をファッツしたい場合があります。開発者は、自分のメールボックスが多数のポストコミット フック テストで攻撃されるのを好みません。
$ cp hooks/mailer.py hooks/mailer2.py
$ cp mailer.conf mailer2.conf
$ hooks/mailer2.py commit . $REV mailer.conf
私がお勧めするのは、コミット後のフックを無効にすることです (Unix/Linux では、実行可能ビットを削除するか、単純に名前post-commit
を に変更するだけで十分post-commit.temp
です)。次に、ユーザーに変更をコミットしてもらいます。
変更がコミットされると、問題の原因となったコミットのリビジョン番号が表示されます。これで、post-commit フックを手動で実行するときに、そのリビジョン番号を使用できます。
役立つヒント
pre-commitフックを作成している場合は、フックがトランザクション番号またはリビジョン番号を取得できるようにします。
# Transaction number in pre-commit script:
REPOS="$1"
TRX="$2"
"$REPOS/hooks/myscript" -t $TRX "$REPOS"
コマンドラインから:
cd $REPOS
hooks/myscript -r $REVISION .
このようにして、すでにコミットされたリビジョンで pre-commit フックをデバッグできます。これは、同じ変更を何度もコミットしてデバッグを試みるよりもはるかに簡単です。