Subversionのログを編集できるようにするには

メモ:  Category:windows

Subversionのログを編集しようとすると、 pre-revprop-change を設定してくださいと言われます。ログの編集を可能にするには、フックスクリプトを用意する必要があります。

リポジトリディレクトリのhookディレクトリに pre-revprop-change.cmd バッチファイルを次のように作成します。

if "%5"=="M" (
  if "%4"=="svn:log" (
    exit 0
  )
)
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

この pre-revprop-change は、リビジョン属性の変更が行われる直前に実行されます。

実行時の引数は、次の5つが渡されるようです。

  1. リポジトリのパス
  2. 属性を変更されたリビジョン
  3. 属性変更する認証ユーザ名
  4. 変更した属性名
  5. 変更種別: A (追加), D (削除), M (変更)

ちなみに、リポジトリを作成した時にテンプレートとして作成されるpre-revprop-change.tmplは次のような感じになっています。

#!/bin/sh

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

bluenote by BBB