argius note

プログラミング関連

Subversiveで"svn:log"を更新できない

Subversionのプロパティとは、リポジトリ内の"svn:"で始まるバージョン情報で、Subversionのデフォルトではプロパティの変更が出来ません。これを更新するにはフックを設定すれば出来るようになります。

今回は、下記ページを参考にさせて頂きました。


リポジトリのルートディレクトリにある"hooks"の中に、フックスクリプトの雛形(*.template)があります。
この中で、"pre-revprop-change.template"をコピーか名前変更で"pre-revprop-change"ファイルを作ります。デフォルトでは"svn:log"だけ許可されていますので、他のプロパティも更新できるようにしたい場合はスクリプトを修正する必要があります。
これでサーバ側の設定は完了です。


クライアントはEclipseプラグインのSubversiveを使用しています。リソースを指定して右クリックから[Team]−[Show Properties]でプロパティを表示し、プロパティを選択して右クリックすると"Edit"メニューが選択できます。ここで編集してみましたが、どうしてもエラーになってしまいます。
下記ページによると、どうやらSubversiveの今のバージョンでは対応していないようです。

もしかしたら最新バージョンでは可能だったかもしれません。ですが、Subversiveのバージョンアップにはいつも悩まされるので、今回は見送りました。かと言って、他のクライアントを入れるのも嫌なので、コマンドでやってみることにしました。

# 指定したリビジョンのログを表示
svn log <URL> -r <REV>
例: svn log file:///var/svn/module/ -r 12
# 指定したリビジョンのログを変更
svnadmin setlog --bypass-hooks <local-path> -r <REV> <comment-file>
例: svnadmin setlog --bypass-hooks /var/svn/module/ -r 12 comment.txt

これで無事更新できました。