Subversionのコミットログを修正

編集者:Terai Atsuhiro
作成日:
更新日:2014-10-21 (火) 20:12:59

概要

コミットログの誤字脱字などを修正します。上書きされてしまうので十分注意して実行してください。

変更方法

以下に、svnadmin setlog 、または svn propset を使ってログを修正する方法をメモしています。

svnadmin setlog

管理者として"svnadmin setlog"を使用し、コミットログの誤字脱字などを修正します。以下に例を載せていますが、実行する前に、リポジトリのお掃除(Repository Cleanup)や、svnadmin setlog(svnadmin setlog)などをよく読んで、注意深く実行してください。

  1. 修正するリビジョンを確認し、そのコミットログをバックアップしておきます。
    c:\tmp> svn log file://localhost/c:/svn/hoge -r 24
    ------------------------------------------------------------------------
    r24 | terai | 2004-02-17 16:08:26 +0900 (Tue, 17 Feb 2004) | 1 lines
    誤字が修正
    ------------------------------------------------------------------------
    c:\tmp> svn log file://localhost/c:/svn/hoge -r 1:HEAD > log.txt
  2. 新しいログファイルを作成し、コミットログを上書きします。
    c:\tmp> echo 誤字を修正 > c:\tmp\newlog.txt
    c:\tmp> svnadmin setlog --bypass-hooks c:\svn\hoge -r 24 c:\tmp\newlog.txt
  3. 修正を確認します。
    c:\tmp> svn log file://localhost/c:/svn/hoge -r 24
    ------------------------------------------------------------------------
    r24 | terai | 2004-02-17 16:08:26 +0900 (Tue, 17 Feb 2004) | 1 lines
    誤字を修正
    ------------------------------------------------------------------------
  • svnadmin setlog は、--bypass-hooks を指定すれば pre-revprop-change を用意しなくていいようです。 -- rabbit
  • --bypass-hooksスイッチを指定しない場合は、コミット前後にフックが実行されるため、リポジトリのhooksディレクトリにpre-revprop-change.batを作成しておく必要があります。テキストエディタなどで作成し、何もしないなら中身は空でもかまいません。
    c:\tmp> echo exit 0 > c:\svn\hoge\hooks\pre-revprop-change.bat

svn propset --revprop

"svn propset --revprop"を使用し、コミットログの誤字脱字などを修正します。以下に例を載せていますが、実行する前に、バージョン化されない属性(Unversioned Properties)や、svn propset(svn propset)などをよく読んで、注意深く実行してください。

  1. あらかじめ対象リポジトリのhooksディレクトリにpre-revprop-change.batを作成します。
    REM REPOS=%1
    REM REV=%2
    REM USER=%3
    REM PROPNAME=%4
    if "%4"=="svn:log" goto :end
    :err
    exit 1
    :end
    exit 0
  2. 修正するリビジョンを確認し、ログを念のためバックアップしておきます。
    c:\temp> svn log http://localhost/svn/hoge -r 24
    ------------------------------------------------------------------------
    r24 | terai | 2004-02-17 16:08:26 +0900 (Tue, 17 Feb 2004) | 1 lines
    誤字が修正
    ------------------------------------------------------------------------
    c:\temp> svn log http://localhost/svn/hoge -r 1:HEAD > log.txt
  3. "svn propset"でリビジョンのログ属性を上書きします。
    c:\temp> svn propset --revprop -r 24 svn:log 誤字を修正 http://localhost/svn/hoge
    property 'svn:log' set on repository revision '24'
  4. 修正を確認します。
    c:\temp> svn log http://localhost/svn/hoge -r 24
    ------------------------------------------------------------------------
    r24 | terai | 2004-02-17 16:08:26 +0900 (Tue, 17 Feb 2004) | 1 lines
    誤字を修正
    ------------------------------------------------------------------------

コメント