リビジョングラフ

図 5.46. リビジョングラフ

リビジョングラフ


時にはブランチやタグがトランクのどこから分かれたのか知る必要があります。この種の情報を見るのに理想的なのは、グラフやツリー構造で見ることです。この必要があるときには、TortoiseSVNリビジョングラフ... としてください。

このコマンドは、リビジョンの履歴を解析し、どのポイントからコピーを取得したか、いつブランチ・タグを削除したかを表示するツリーを作成しようとします。

重要項目

TortoiseSVN がグラフを生成するには、リポジトリのルートからログメッセージをすべて取得しなければなりません。言うまでもなく、数千リビジョンのリポジトリがある場合 (サーバの速度やネットワークの帯域などににもよりますが) 数分かかるでしょう。現在 500,000 リビジョンを越えている Apache プロジェクトのようなところで試せば、しばらく待っていなければなりません。

朗報としては、ログキャッシュを使用している場合は、一度この遅さを我慢すればいいということです。これ以後は、ローカルにログデータを保持しています。ログキャッシュは TortoiseSVN 設定で有効にできます。

リビジョングラフのノード

リビジョングラフには、以下のタイプのノードを表示します。

追加されたファイル・フォルダ

追加されたり、他のファイル・フォルダからコピーで作成された項目は、角の丸い矩形で表します。

削除されたファイル・フォルダ

必要のなくなったブランチなど削除された項目は、八角形 (角を落とした矩形) で表します。

ブランチティップリビジョン

最後のブランチノード以降、ブランチ (もしくはトランクやタグ) が変更されているところでは、楕円を使用して表示します。最新のリビジョンを表示 オプションを選択している場合に表示します。

通常のファイル・フォルダ

他の項目は、通常の矩形で表します。

グラフには項目の追加・削除のみ表示することにご注意ください。プロジェクト内のすべてのリビジョンを表示すると、重要なものだけでも非常に大きいグラフを生成します。本当にリビジョンが必要なら、表示 メニューにこのようにするオプションがあります。

表示の変更

リビジョングラフは非常に複雑になることがありますので、お好みの表示にできるようにいくつもの機能があります。ツールバーの 表示 メニューから使用できます。

分岐をグループ化

デフォルトの振る舞い (グループ化無効) では、リビジョンごとに一行使用し、すべての行をリビジョンごとに厳密に並べ替えます。その結果、長生きなブランチは、変更が少ないにもかかわらず大量の列を占有し、グラフが非常に広くなってしまいます。

このモードは変更をブランチでグループ化するため、グローバルなリビジョン順はありません。ブランチ上の連続したリビジョンは、連続した線で (大抵) 表します。しかしサブブランチの場合、グラフをスリムにしておくため、古いブランチと同じ列に後から発生したブランチを配置するようにします。その結果、異なるリビジョン由来の変更を同じ行に含む可能性があります。

古いものを先頭に表示する

通常、グラフは古いものを下に配置し、上の方に伸びていきます。このオプションにより、上から下に伸びていくようになります。

最新のリビジョンを表示

これにより、各ブランチの最新リビジョンが、グラフ上に常に現れることを保証します。

正確なコピー元の表示

ブランチ・タグが作成された際、デフォルトの振る舞いは変更があった最後のノードからのブランチとして表示します。ブランチは特定のリビジョンからではなくその時の最新 (HEAD) から作成されますので、厳密には正しくありません。そこで、コピーを作成したリビジョンを使用して、より正しい (しかしあまり有用でない) 表示を行えます。

タグを折りたたむ

ソフトウェア開発でのグラフを見る場合、タグ付けされたリリースはあまり興味が無いかもしれません。このオプションは、タグのノードを非表示にし、コピーしたノードにツールチップで表示するようにします。タグが作成された場合、元のノードの右側にタグアイコンを表示します。

線が交差しないようにする

グラフのレイアウト上で線の交差が発生したら、このオプションで整形してください。これによりレイアウトの列はあまり論理的でない場所に配置する可能性があります (例: 列でなく対角線)。また、最適化には多少時間がかかります。

フィルタ

リビジョングラフは、時に必要以上に大量のリビジョンを含んでしまいます。このオプションではダイアログを表示し、表示するリビジョン範囲を制限したり、特定のパスを非表示にしたりといったことができます。

グラフの利用

大きなリビジョングラフを参照するのに、外観ウィンドウを使用してください。小さなウィンドウに、図の全体を表示し、現在の表示範囲を強調しています。強調範囲をドラッグすると、表示領域が変化します。

リビジョンの日付、作者。コメントは、マウスをリビジョンボックスの上にかざしたときに出るヒントボックスに表示します。

2 つのリビジョンを選択 (Ctrl-左クリック) すると、そのリビジョン間の差分を表示するコンテキストメニューを利用できます。ブランチ作成ポイントで差分を表示できますが、通常ブランチ終了ポイント (つまり HEAD リビジョン) について表示したいことでしょう。

差分を Unified-Diff ファイル (最小の文脈で全差分を 1 ファイルにまとめたもの) で見られます。コンテキストメニューリビジョンを比較 を選択すると、変更したファイルの一覧が表示されます。ファイル名を ダブルクリック すると両リビジョンを取得し、視覚差分ツールで比較します。

リビジョン上で 右クリック すると、履歴を表示するのに コンテキストメニューログ表示 を使用できます。

異なる作業コピーにある、選択したリビジョンの変更に対するマージを行います。フォルダ選択ダイアログにより、マージ結果の作業コピーを選択できますが、確認ダイアログはなく、また動作チェックもできません。変更していない作業コピーを用い、選択したリビジョンをマージするのに失敗したら変更を取り消すのがうまい方法です! これはあるブランチから別のブランチへ、選択したリビジョンをマージするのに便利です。

注意

Subversion では必要なすべての情報を提供しているわけではないので、時々奇妙な結果になってしまい、ある程度解釈が必要です。それでも、トランクの出力は通常有用な結果を返すでしょう。

表示の更新

新しい情報を取得するためサーバを再チェックする場合、単純に F5 で表示を更新できます。ログキャッシュを使用する場合 (デフォルトで有効)、新しいログメッセージがあるかリポジトリをチェックし、新しいもののみを取得します。ログキャッシュがオフラインモードだった場合、オンラインモードにしようともします。

ログキャッシュを使用しており、メッセージの内容や作者を変更しようとする場合、必要なメッセージを再読込するのにログダイアログを使用するべきです。リビジョングラフはリポジトリのルートから動作しますので、ログキャッシュ全体を無効にせねばならず、キャッシュにためるのに非常に長い時間がかかります。