ステータス情報取得

作業コピーで作業をしていると、ファイルに対して変更・追加・削除や名前の変更を行ったのかどうか、また他の人が変更してコミットしたファイルがあるかどうか知る必要があるでしょう。

アイコンオーバーレイ

図4.12 エクスプローラのアイコンオーバーレイ表示

エクスプローラのアイコンオーバーレイ表示


今、Subversion リポジトリから作業コピーにチェックアウトしたとすると、Windows エクスプローラ上でファイルのアイコンが変わっていることと思います。これこそ TortoiseSVN の評判がいい理由のひとつです。TortoiseSVN はオーバーレイアイコンと呼ばれるアイコンを、元のファイルアイコンの上に重ねて表示します。ファイルの Subversion 状態によってオーバーレイアイコンが変わります。

作業コピーにチェックアウトしたばかりのファイルには緑のチェックマークをオーバーレイします。Subversion の状態は 通常 です。

ファイルの編集をはじめるとすぐに状態が 修正 に変わり、アイコンオーバレイも赤いエクスクラメーションマークに変わります。これで最後に作業コピーを更新してからどのファイルに変更を加え、コミットする必要があるかどうか分かります。

更新中に 競合 が発生したら、黄色いエクスクラメーションマークのアイコンに変わります。

ファイルに svn:needs-lock 属性をセットしていると、そのファイルにロックをかけるまで Subversion は読み取り専用にします。この読み取り専用ファイルには、編集前にロックするまで、このオーバーレイを表示します。

ファイルをロックして Subversion 状態が 通常 ならこのアイコンが表示され、他の人がそのフィルへの変更をコミットしても良いのにロックを解放忘れをしないようにしてくれます。

バージョン管理から 削除 されるカレントフォルダ内のファイルやフォルダ、またバージョン管理が紛失したフォルダ内にあるファイルにこのアイコンがつけられます。

バージョン管理に 追加 されるファイルやフォルダには+サインがつきます。

横棒サインは、ファイルやフォルダが、バージョン管理的に 無視 されていることを示します。このオーバーレイはオプションです。

バージョン管理下にないファイルやフォルダで、無視されない場合には、このアイコンを表示します。このオーバーレイはオプションです。

実はシステムで使用できるアイコンのすべてを見ることはありません。Windows で使用できるオーバーレイの数はかなり制限されており、また TortoiseCVS の旧バージョンも使用していると、使用できるオーバーレイスロットが足らなくなります。そのため TortoiseSVN はGood Citizen (TM) に挑戦し、オーバーレイを他のアプリケーションが使用できるように制限しているのです。

現在では、たくさんの Tortoise クライアントが存在する (TortoiseCVS, TortoiseHG, ...) ため、アイコンの限界は現実の問題になっています。これに対処するため、TortoiseSVN プロジェクトは Tortoise クライアントで共通に使用できるように、DLL で読み込む共有アイコンセットを導入しました。もう統合されているかを、各クライアントのプロバイダでチェックしてみてください。:-)

Subversion の状態に対応するアイコンオーバーレイの付き方や、その他の技術詳細は、「アイコンオーバーレイ」 をご覧ください。

Windows エクスプローラの TortoiseSVN 列

アイコンオーバーレイと同様 (またそれ以上) の情報を、Windows エクスプローラの詳細ビューに追加する列で表示できます。

単に列の見出しを右クリックして出てくるコンテキストメニューの、その他... を選んでください。詳細ビュー の列とその順番を設定するダイアログが表示されます。SVN で始まる項目が出てくるまでスクロールしてください。表示したい項目にチェックをつけ、OK を押してダイアログを閉じてください。元々表示していた項目の右に列が追加されているはずです。お好みに応じて、ドラッグ&ドロップで順番を変えたり大きさを変更してください。

重要

Windows エクスプローラへの列の追加は、Vista では利用できません。Microsoft がファイルへのそのような列の追加を、もう許さず、特定のファイルタイプのみにしたからです。

ヒント

このレイアウトを作業コピー全体に適用するなら、これをデフォルトビューにするといいでしょう。

こちらの状態とあちらの状態

図4.13 変更をチェック

変更をチェック


あなたがどのファイルを変更したか、また他の人がどのファイルを変更しコミットしたかを知ることは非常に有用です。これには TortoiseSVN変更をチェック... コマンドが役に立ちます。このダイアログは作業コピー内で何らかの変更をした全てのファイルを表示し、バージョン管理外のファイルも指定すれば同様に表示します。

リポジトリをチェック をクリックすると、リポジトリの変更点も参照できます。競合が起こりそうな場合、更新前にこれで変更点を確認できます。リポジトリの全てのフォルダを更新しないで、選択したファイルのみ更新することもできます。デフォルトでは、リポジトリをチェック ボタンは、作業コピーに対してチェックアウトした深さまでしか、リモートの状態を取得しません。リポジトリ内のファイル・フォルダすべてを、チェックアウトしていなくても見たい場合は、Shift キーを押しながら、リポジトリをチェック ボタンをクリックしてください。

このダイアログでは、状態を色分けで表示します。

ローカルで修正した項目

追加した項目。履歴から追加した項目には テキストの状態列に + 印がつきます。また、そこにコピーされた項目にはツールチップが現れます。

暗赤色

削除・紛失した項目

ローカル・リポジトリで修正しした項目。更新時にマージされます。更新時に競合する可能性があります。

明赤色

ローカルで修正されリポジトリでは削除された、ないしリポジトリで修正されローカルで削除された項目。更新時に競合が発生します。

更新がなくバージョン管理外の項目

これはデフォルトの色設定ですが、設定ダイアログで色をカスタマイズできます。詳細は 「TortoiseSVN での色設定」 をご覧ください。

別のリポジトリパスに切り替えた項目には、(s) マークが付きます。何かを切り替えてブランチで作業した後、トランクに戻すのを忘れている可能性もあります。これは警告マークです!

このダイアログのコンテキストメニューから、変更点の差分を取れます。あなた が行った手元の変更をチェックするのには、コンテキストメニューBase と比較 を使用してください。他の人が行ったリポジトリへの変更は、コンテキストメニューUnified Diff 形式で差分を表示 を使用してください。

個々のファイルhwの変更を元に戻すこともできます。誤ってファイルを消してしまった場合には、紛失 と表示されますし、修復するのに 元に戻す ことができます。

バージョン管理外のファイルや無視ファイルは、コンテキストメニュー削除 でゴミ箱に送れます。完全に (ゴミ箱経由なしで) ファイルを削除するには、Shift キーを押したまま 削除 をクリックしてください。

ファイルの詳細を調べたければ、ここからテキストエディタや IDE のような、別のアプリケーションにドラッグできます。

下のペインに表示された列は、カスタマイズできます。列見出しの上で 右クリック すると、表示する列を選択するコンテキストメニューを表示します。また、列の境界上にマウスを持っていくとドラッグハンドルを表示し、列幅を変更できます。以上のカスタマイズは保存されるので、次回以降も同じ列見出しになります。

関連のない複数のタスクを一度に処理する場合、変更リストにあるファイルをまとめて扱うこともできます。詳細情報は 「変更リスト」 をご覧ください。

ダイアログの下部に、作業コピーで使われている、リポジトリリビジョンの範囲の概要を表示しています。これは 更新 リビジョンではなく コミット リビジョンで、ファイルが更新されたリビジョンではなく、ファイルが最後にコミットされた時のリビジョン範囲を表しています。リビジョン範囲は作業コピー全体ではなく、表示されている項目のみに対して表していることに注意してください。作業コピー全体に対してこの情報を表示する場合は、未変更ファイルを表示 チェックボックスにチェックを入れなければなりません。

ヒント

作業コピーをフラットに参照 (フォルダ階層のすべてのファイルとフォルダを表示するなど) したければ、変更をチェック ダイアログが一番簡単です。未変更ファイルを表示 チェックボックスにチェックをつけると、作業コピー内のすべてのファイルを表示します。

外部での名前変更の修復

Subversion の外部でファイルの名前が変更されることがあり、その場合、ファイル一覧で紛失ファイルとして表示されたり、バージョン管理外ファイルとして表示されます。履歴を失わないように Subversion に関連を通知する必要があります。単純に古い名前 (紛失) と 新しい名前 (バージョン管理外) を選択し、コンテキストメニュー移動を修復 を用いて 2 つのファイルが名前変更であると指定してください。

差分表示

時にはどんな変更をしたのかファイルの中を見たくなるでしょう。それには、変更のあるファイルを選択して、TortoiseSVN のコンテキストメニューから 差分 を選択するとできます。これで外部差分ビューアを起動し、現在のファイルとチェックアウト・更新を行った直後のコピー (BASE リビジョン) とを比較できます。

ヒント

作業コピー内にない場合や複数のバージョンがある場合のどちらでも、差分を表示できます。

エクスプローラで比較したい2 つのファイルを選択 (例 Ctrl とマウスを使用) し、TortoiseSVN のコンテキストメニューから 差分 を選択してください。最後にクリックしたファイル (フォーカスのあるもの。例 点線で四角囲われている) を最新として扱います。