svn log — コミットログメッセージの表示。
デフォルトのターゲットは現在の作業ディレクトリのパスになります。
引数を指定しなければ svn
log は自分の作業コピーの現在の作業ディレクトリ
自身とその内部のすべてのファイルとディレクトリに関するログメッセージを
表示します。
一つのパス、一つ以上のリビジョン、あるいはそれらの組み合わせを
指定することで結果内容を指定をできます。ローカルパスのデフォルト
リビジョン範囲は、BASE:1
です。
URLだけを指定すれば、その URL に含まれるすべてのログメッセージが
表示されます。URLの後にパスを付ければ URL中のそれらのパスに含まれる
メッセージだけが表示されます。URL のデフォルトリビジョン範囲は
HEAD:1
です。
--verbose
を指定するとsvn log
はそれぞれのログメッセージと共に関連したすべてのパスを表示します。
--quiet
を指定すると svn log
はログメッセージの本体部分を表示しなくなります(これは --verbose
スイッチと両立します)。
それぞれのログメッセージは、そのリビジョンに影響のあるパスが二度
以上要求されても、一度だけ表示されます。ログはデフォルトではコピーされた
履歴に従います。--stop-on-copy
はこの振る舞いを無効にしますが、ブランチが
起きた場所を特定する場合には役に立ちます。
--revision (-r) REV --quiet (-q) --verbose (-v) --targets FILENAME --stop-on-copy --incremental --limit NUM --xml --username USER --password PASS --no-auth-cache --non-interactive --config-dir DIR
最上位で svn log を実行することによって作業コピー中の変更されたすべての パスのログメッセージを見ることができます:
$ svn log ------------------------------------------------------------------------ r20 | harry | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line Tweak. ------------------------------------------------------------------------ r17 | sally | 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003) | 2 lines …
作業コピー中の特定のファイルに関するすべてのログメッセージを調べます:
$ svn log foo.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
作業コピーが手元にない場合、URLを log することができます:
$ svn log http://svn.red-bean.com/repos/test/foo.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
同じURLの下のいくつかの別のパスがほしい場合URL [PATH...]
構文を使うことができます。
$ svn log http://svn.red-bean.com/repos/test/ foo.c bar.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r31 | harry | 2003-01-10 12:25:08 -0600 (Fri, 10 Jan 2003) | 1 line Added new file bar.c ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
複数の log コマンドの結果をつなげたい場合、--incremental
スイッチを使うことができます。
svn logは普通メッセージの最初にダッシュの行を表示
し、それぞれの引き続くログメッセージを表示し、最後のログメッセージが
それに続きます。
もし svn log を二つのリビジョン範囲で実行した場合、次のような出力
になります:
$ svn log -r 14:15 ------------------------------------------------------------------------ r14 | ... ------------------------------------------------------------------------ r15 | ... ------------------------------------------------------------------------
しかし、二つの順番になっていないログメッセージをファイルに 出力したい場合、何か次のような感じになるでしょう:
$ svn log -r 14 > mylog $ svn log -r 19 >> mylog $ svn log -r 27 >> mylog $ cat mylog ------------------------------------------------------------------------ r14 | ... ------------------------------------------------------------------------ ------------------------------------------------------------------------ r19 | ... ------------------------------------------------------------------------ ------------------------------------------------------------------------ r27 | ... ------------------------------------------------------------------------
incremental スイッチを使えば、出力中の重複したダッシュ行 の表示を避けることができます:
$ svn log --incremental -r 14 > mylog $ svn log --incremental -r 19 >> mylog $ svn log --incremental -r 27 >> mylog $ cat mylog ------------------------------------------------------------------------ r14 | ... ------------------------------------------------------------------------ r19 | ... ------------------------------------------------------------------------ r27 | ...
--incremental
スイッチは、
--xml
スイッチを使ったときと同じような出力
制御をします。
もし svn log を特定のパス上の特定のリビジョン指定で実行すると 何も出力されないでしょう
$ svn log -r 20 http://svn.red-bean.com/untouched.txt ------------------------------------------------------------------------
それはパスはリビジョンによっては修正されなかったことを意味 しています。リポジトリの最上位で log するか、そのリビジョンで 修正したファイルを知っているなら、明示的にそれを指定することが できます:
$ svn log -r 20 touched.txt ------------------------------------------------------------------------ r20 | sally | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line Made a change. ------------------------------------------------------------------------