Subversionのフットスクリプトを利用することで、サーバサイドでコミット時にさまざまな処理を実行することができます。
サーバ上のリポジトリ設置ディレクトリ直下の「/hooks/」ディレクトリに配置されてるファイルにスクリプトを記述することで、処理を実行することができます。
ファイルの種類により実行のタイミングが管理されており、それぞれ以下のようになっています。
start-commit | コミットトランザクション作成前 |
---|---|
pre-commit | コミット前 |
post-commit | コミット後 |
pre-revprop-change | リビジョン属性変更前 |
post-revprop-change | リビジョン属性変更後 |
pre-lock | ロック取得前 |
post-lock | ロック取得後 |
pre-unlock | ロック解放前 |
post-unlock | ロック解放後 |
リポジトリを作成したデフォルトの状態で、各テンプレートファイルが用意されているので、そのファイルをリネームすることで用います。
例えば「start-commit.tmpl」ファイルがあるので、コピーまたはリネームで「start-commit」というファイルを作成し、テキストエディタで開いてスクリプトを記述します。
ファイルを用意するだけで、後はコミット時に自動的にファイルの内容を読み込んでスクリプトが実行されるしくみです。
それでは、いくつか具体的な処理にトライしてみます。
ちなみに今回、SubversionサーバはUbuntu 14.04で試しているのでLinuxコマンドの処理となりますが、もちろんWindowsサーバでも同等の事が実現可能です。