Subversionのコミットログを修正
Total: 54599
, Today: 1
, Yesterday: 4
Posted by aterai at
Last-modified:
概要
コミットログの誤字脱字などを修正します。上書きされてしまうので十分注意して実行してください。
変更方法
以下に、svnadmin setlog
、またはsvn propset
を使ってログを修正する方法をメモしています。
svnadmin setlog
管理者としてsvnadmin setlog
を使用し、コミットログの誤字脱字などを修正します。以下に例を載せていますが、実行する前に、Repository Cleanupや、svnadmin setlogなどをよく読んで、注意深く実行してください。
- 修正するリビジョンを確認し、そのコミットログをバックアップしておきます。
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
- 新しいログファイルを作成し、コミットログを上書きします。
c:\tmp> echo 誤字を修正 > c:\tmp\newlog.txt c:\tmp> svnadmin setlog --bypass-hooks c:\svn\hoge -r 24 c:\tmp\newlog.txt
- 修正を確認します。
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などをよく読んで、注意深く実行してください。
- あらかじめ対象リポジトリの
hooks
ディレクトリにpre-revprop-change.bat
を作成します。REM #[1]REPOS-PATH(the path to this repository) REM #[2]REV (the revision that was tweaked) REM #[3]USER (the username of the person tweaking the property) REM #[4]PROPNAME (the property that was changed) REM #[5]ACTION (the property was 'A'dded, 'M'odified, or 'D'eleted) REM set REPOS=%1 REM set REV=%2 REM set USER=%3 set PROPNAME=%4 REM set ACTION="$5" rem if "%4"=="svn:log" goto :end if "%PROPNAME%"=="svn:log" goto :end :err exit 1 :end exit 0
- 修正するリビジョンを確認し、ログを念のためバックアップしておきます。
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
svn propset
でリビジョンのログ属性を上書きします。c:\temp> svn propset --revprop -r 24 svn:log 誤字を修正 http://localhost/svn/hoge property 'svn:log' set on repository revision '24'
- 修正を確認します。
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 誤字を修正 ------------------------------------------------------------------------