マニュアル

誰がどの行を変更したか?

変更された行だけでなく、ファイルの特定の行を誰が変更したのかを知る必要がある場合があります。そのような場合に役立つのが、TortoiseSVNBlame... コマンドです。これは annotate コマンドとも呼ばれます。

このコマンドは、ファイルのすべての行について、作者と行が変更されたリビジョンを一覧表示します。

ファイルのBlame

図4.64 注釈/Blame ダイアログ

The Annotate / Blame Dialog


以前のリビジョンからの変更に興味がない場合は、Blame を開始するリビジョンを設定できます。 すべての リビジョンの Blame を取得したい場合は、これを 1 に設定してください。

デフォルトでは、Blame ファイルは TortoiseBlame を使用して表示され、読みやすくするために異なるリビジョンがハイライト表示されます。 Blame ファイルを印刷または編集したい場合は、テキストビューアで Blame を表示 を選択してください。

行末と空白文字の変更の処理方法を指定できます。これらのオプションについては、「行末と空白文字のオプション」のセクションで説明されています。デフォルトの動作では、すべての空白文字と行末の違いを実際の変更として扱いますが、インデントの変更を無視して元の作者を見つけたい場合は、ここで適切なオプションを選択できます。

必要に応じて、マージ情報を含めることもできます。ただし、このオプションはサーバーから取得するのにかなり時間がかかる場合があります。行が別のソースからマージされた場合、Blame 情報には、変更が元のソースで行われたリビジョンと、このファイルにマージされたリビジョンが表示されます。

OK を押すと、TortoiseSVN は Blame ファイルを作成するためのデータの取得を開始します。 Blame プロセスが完了すると、結果が一時ファイルに書き込まれ、結果を表示できます。

図4.65 TortoiseBlame

TortoiseBlame


TortoiseSVN に含まれている TortoiseBlame は、Blame ファイルを読みやすくします。 Blame 情報列の行にマウスカーソルを合わせると、同じリビジョンのすべての行が濃い背景で表示されます。同じ作者によって変更された他のリビジョンの行は、薄い背景で表示されます。ディスプレイが 256 色モードに設定されている場合、色分けが明確に機能しない場合があります。

行を 左クリック すると、同じリビジョンのすべての行がハイライト表示され、同じ作者による他のリビジョンの行が薄い色でハイライト表示されます。このハイライト表示は固定されており、ハイライトを失うことなくマウスを移動できます。ハイライト表示をオフにするには、そのリビジョンをもう一度クリックしてください。

リビジョンコメント(ログメッセージ)は、マウスカーソルが Blame 情報列にあるときに常にヒントボックスに表示されます。そのリビジョンのログメッセージをコピーしたい場合は、Blame 情報列を右クリックしたときに表示されるコンテキストメニューを使用してください。

編集検索... を使用して、Blame レポート内を検索できます。これにより、リビジョン番号、作者、およびファイル自体のコンテンツを検索できます。ログメッセージは検索には含まれません。ログメッセージを検索するには、ログダイアログを使用する必要があります。

編集行へ移動... を使用して、特定の行番号にジャンプすることもできます。

マウスが Blame 情報列にある場合、コンテキストメニューが利用可能になり、マウスの下の行のリビジョン番号を参照として使用して、リビジョンの比較と履歴の調査に役立ちます。 コンテキストメニュー前のリビジョンの Blame は、同じファイルの Blame レポートを生成しますが、上限として前のリビジョンを使用します。これにより、見ている行が最後に変更される直前のファイルの状態の Blame レポートが得られます。 コンテキストメニュー変更を表示 は、差分ビューアを起動し、参照されたリビジョンで何が変更されたかを表示します。 コンテキストメニューログを表示 は、参照されたリビジョンから始まるリビジョンログダイアログを表示します。

最新と最古の変更箇所をより視覚的に示したい場合は、表示行の経過時間を色で表示 を選択してください。これにより、新しい行が赤、古い行が青の色のグラデーションを使用して表示されます。デフォルトの色分けはかなり薄いですが、TortoiseBlame の設定を使用して変更できます。

マージ追跡を使用しており、Blame を開始するときにマージ情報を要求した場合、マージされた行はわずかに異なって表示されます。行が別のパスからのマージの結果として変更された場合、TortoiseBlame は、マージが行われたリビジョンではなく、元のファイルでの最後の変更のリビジョンと作者を表示します。これらの行は、リビジョンと作者がイタリック体で表示されることで示されます。マージが行われたリビジョンは、マウスカーソルを Blame 情報列に合わせると、ツールチップに個別に表示されます。マージされた行をこのように表示したくない場合は、Blame を開始するときに マージ情報を含める チェックボックスをオフにしてください。

マージに関与するパスを表示したい場合は、表示マージパス を選択してください。これにより、マージに起因する変更を除き、行が最後に変更されたパスが表示されます。

Blame 情報に表示されるリビジョンは、その行のコンテンツが変更された最後のリビジョンを表します。ファイルが別のファイルをコピーして作成された場合、行を変更するまで、その Blame リビジョンには、コピーが作成されたリビジョンではなく、元のソースファイルの最後の変更が表示されます。これは、マージ情報とともに表示されるパスにも当てはまります。パスは、その行に最後に変更が加えられたリポジトリの場所を示します。

TortoiseBlame の設定には、TortoiseSVN設定... から TortoiseBlame タブでアクセスできます。「TortoiseBlame の設定」のセクションを参照してください。

Blame の差分

Blame レポートの制限事項の 1 つは、特定のRevisionのファイルと、各行を最後に変更した人物のみを表示することです。変更を行った人物だけでなく、どのような変更が行われたかを知りたい場合があります。 TortoiseBlame の行を右クリックすると、そのリビジョンで行われた変更を表示するコンテキストメニュー項目があります。しかし、変更 Blame 情報を同時に表示したい場合は、diff レポートと Blame レポートの組み合わせが必要です。

リビジョンログダイアログには、これを可能にするいくつかのオプションが含まれています。

Blame リビジョン

上のペインで、2 つのリビジョンを選択し、コンテキストメニューBlame リビジョン を選択します。これにより、2 つのリビジョンの Blame データが取得され、差分ビューアを使用して 2 つの Blame ファイルが比較されます。

Blame の変更

上のペインで 1 つのリビジョンを選択し、下のペインで 1 つのファイルを選択して、コンテキストメニューBlame の変更 を選択します。これにより、選択したリビジョンと前のリビジョンの Blame データが取得され、差分ビューアを使用して 2 つの Blame ファイルが比較されます。

ワーキング BASE と比較して Blame

単一ファイルのログを表示し、上のペインで単一のリビジョンを選択してから、コンテキストメニューワーキング BASE と比較して Blame を選択します。これにより、選択したリビジョンとワーキング BASE 内のファイルの Blame データが取得され、差分ビューアを使用して 2 つの Blame ファイルが比較されます。

TortoiseSVN ホームページ