Subversion ログメッセージを変更する方法

Subversionを使用していて、コミット時のログメッセージを間違えることが多いので、ログメッセージを変更する方法を調べた際のメモ。


ログメッセージは、以下のコマンドで変更できるらしい。

$ svn propset --revprop -r リビジョン svn:log "ログメッセージ"

上記コマンドを実行するが、なにやら怒られた模様。。

svn: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svn: At least one property change failed; repository is unchanged
svn: Error setting property 'log': 
Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook

どうやら、リポジトリ内に pre-revprop-change というファイルを作らないとダメらしい。。


リポジトリ内に hooks というディレクトリがあり、そこに pre-revprop-change というフックスクリプトを作成する。
都合良くテンプレートがあったので、そのままコピーして、実行権限を与えれる。

$ cd /path/to/repository/hooks
$ cp -p pre-revprop-change.tmpl pre-revprop-change
$ chmod +x pre-revprop-change

設定できたので、もう一度実行。

$ svn propset --revprop -r 411 svn:log "まずはtypoをなくそう!"
property 'svn:log' set on repository revision 411

OK、ちゃんと更新されたっぽい!

pre-revprop-change を弄ると、ファイル属性の変更とかいろいろ出来るらしい。


※ いつの間にか、SubversionApacheの傘下に!