サーバ側フックスクリプト

フックスクリプトは、リポジトリのイベント (新しいリビジョンの作成やバージョン管理外の属性の変更など) を引き金に動作するプログラムです。いずれのフックも、イベントが何か、操作の対象は何か、イベントの引き金を引いた人物のユーザ名といった情報を受け取ります。フックの出力や終了ステータスによって、フックプログラムは動作の続行、停止、中断を切り替えることになります。実装されているフックについての詳細は、Subversion Book の Hook Scripts の章を参照してください。

このフックスクリプトは、リポジトリのあるサーバで実行されます。TortoiseSVN は、各イベントでのローカルに実行する、クライアントサイドフックスクリプトも設定できます。詳細は 「クライアント側フックスクリプト」 をご覧ください。

シンプルなフックスクリプトは、リポジトリの hooks ディレクトリにあります。このサンプルスクリプトは Unix/Linux サーバ用で Windows ベースのサーバでは修正する必要があります。フックはバッチファイルや実行形式です。以下のサンプルは pre-revprop-change フックを実装したバッチファイルの例です。

rem Only allow log messages to be changed.
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1

標準出力に送った物はすべて捨てられてしまうことに注意してください。コミットリジェクトダイアログにメッセージを表示したい場合は、標準エラー出力に送らなくてはなりません。このバッチファイルでは >&2 を使用しています。