サイトマップ 連絡先 トップに戻る 最初に戻る
$Date: 2018-07-07 06:49:13 +0900 (2018/07/07 (土)) $
$Revision: 1347 $

Subversion フックスクリプト

概要

フックスクリプトに関して解説します。

リンク

フックスクリプトとは?

Subversion リポジトリを作成すると hooks ディレクトリに以下のスクリプトの テンプレートが作成されます。
hook
実行タイミング 主な用途
start-commit コミットトランザクション作成前 ユーザー名に基づいたコミット拒否。Subversion のバージョンチェック。 たとえば merge-tracking をサポートしていないクライアントから merge-tracking をサポート している Subversion 1.5 以降のサーバーへのコミットを拒否するなど。
Subversion 1.5 では引数が 3 つになっています。
pre-commit コミットトランザクション作成後で、コミット直前 コミットするデータの内容またはコミットログによるコミット拒否
post-commit コミット直後 リポジトリデータのバックアップ、変更メール通知
pre-revprop-change リビジョン属性変更前 リビジョン属性変更の許可
post-revprop-change リビジョン属性変更(コミットログ等)の直後 リビジョン属性のバックアップ、変更メール通知
pre-lock ロック取得直前
post-lock ロック取得直後 メール通知
pre-unlock ロック解放直前
post-unlock ロック解放直後 メール通知

フックスクリプトの設置

Unix 系OSの場合

  1. フックスクリプトのテンプレートファイルの名前を変更する。

  2. スクリプトを編集する
  3. 実行属性をつける

Windows の場合

  1. フックスクリプトのテンプレートファイルの名前を変更する。

  2. スクリプトを編集する

フックスクリプトでできないこと

start-commit と pre-commit

start-commit と pre-commit はコミットを行う前に実行されるフックスクリプトです。

これらのフックスクリプトでできるのはコミットを許可するか禁止するかの判断だけです。 コミット内容をフックスクリプトで変更することはできません。

フックスクリプトの作成上の注意

フックスクリプトが実行されるときには、セキュリティ上の理由から 環境変数(PATH 変数も)がすべて空の状態で起動されます。

このためスクリプト内部で外部プログラムを起動する場合は絶対パスを 使用するかスクリプト内部で環境変数を設定する必要があります。