作業コピーで作業をしていると、ファイルに対して変更・追加・削除や名前の変更を行ったのかどうか、また他の人が変更してコミットしたファイルがあるかどうか知る必要があるでしょう。
Subversion のリポジトリから作業コピーにチェックアウトすると、 Windows エクスプローラー上でファイルのアイコンが変化しているのが分かります。これこそ TortoiseSVN を有名にした理由のひとつです。 TortoiseSVN はオーバーレイアイコンと呼ばれるアイコンを、元のファイルアイコンの上に重ねて表示します。ファイルの Subversion における状態によってオーバーレイアイコンが変わります。
作業コピーにチェックアウトしたばかりのファイルには緑のチェックマークをオーバーレイします。Subversion の状態は 通常 です。
ファイルの編集をはじめるとすぐに状態が 変更 に変わり、アイコンオーバレイも赤いエクスクラメーションマークに変わります。これで最後に作業コピーを更新してからどのファイルに変更を加え、コミットする必要があるかどうか分かります。
更新中に 競合 が発生したら、黄色いエクスクラメーションマークのアイコンに変わります。
ファイルに svn:needs-lock
プロパティを設定していると、 Subversion はそのファイルにロックをかけるまで読み取り専用にします。そのようなファイルには、編集前にロックするまで、このオーバーレイが表示されます。
ファイルをロックしており、かつ Subversion の状態が 通常 であれば、もう他人にファイルの変更を許可しても良いのにロックを解除し忘れないように、このアイコンが表示されます。
バージョン管理から 削除 されるカレントフォルダー内のファイルやフォルダー、またバージョン管理が紛失したフォルダー内にあるファイルにこのアイコンがつけられます。
バージョン管理に 追加 されるファイルやフォルダーには+印がつきます。
横棒印は、ファイルやフォルダーが、バージョン管理的に 無視 されていることを示します。このオーバーレイはオプションです。
バージョン管理下にないファイルやフォルダーで、無視されていない場合には、このアイコンが表示されます。このオーバーレイはオプションです。
実際のところ、上記のアイコンのすべてがシステムで使用されている訳ではないことが分かると思います。 Windows で使用できるオーバーレイの数はかなり制限されていますし、また TortoiseCVS の古いバージョンを一緒に使用していると、使用できるオーバーレイスロットが不足します。TortoiseSVN は 「Good Citizen ™」 (良い市民)になれるように、他のアプリケーションにも使用する機会を与えるように、オーバーレイの使用を制限しています。
Tortoise クライアントが今より増えた場合(TortoiseCVS、TortoiseHg、...)、アイコンの限界は現実的な問題になります。この問題を回避するために、 TortoiseSVN プロジェクトではすべての Tortoise クライアントで共通に使用できる、 DLL で読み込むアイコンセットを導入しました。すでに統合されているかどうかを確認するには、クライアントの供給元に確認してください。 :-)
Subversion の状態に対応するアイコンオーバーレイの付き方や、その他の技術詳細は、 「アイコンオーバーレイ」 をご覧ください。
オーバーレイアイコンより詳しい、ファイルやディレクトリに関する詳細情報を確認したい場合、エクスプローラーのプロパティダイアログから、 Subversion が提供するすべての情報を確認することができます。ファイルやディレクトリを選択し、コンテキストメニューの → を選択するだけです(TortoiseSVN のサブメニュー内のものではなく、エクスプローラーのプロパティであることに注意してください)。 Subversion の管理下のファイルやフォルダーでプロパティを表示すると、 TortoiseSVN 独自のプロパティページが表示されます。ここで、選択したファイルやフォルダーに関するすべての情報を見ることができます。
自分でどのファイルを変更したか、また他の人がどのファイルを変更しコミットしたかを知ることは非常に有用です。これには → コマンドが役に立ちます。このダイアログは作業コピー内にある何らかの変更をしたファイルや、バージョン管理外のファイルをすべて表示します。
Shift キーを押しながら ボタンをクリックしてください。
をクリックすると、リポジトリで行われた変更を参照できます。競合が起こりそうな場合、更新前にこれで変更点を確認できます。リポジトリの全てのフォルダーを更新しないで、選択したファイルのみ更新することもできます。デフォルトでは、 ボタンは、リモートの状態を作業コピーにチェックアウトした深さまで検索します。リポジトリ内のチェックアウトしていないファイルやフォルダーまで確認したい場合は、このダイアログでは、状態が色分けして表示されます。
ローカルで変更された項目です。
変更されていないファイルが移動されたディレクトリの中にあった場合、状態は状態の列に+
を表示し、色が青になります。
追加された項目です。履歴から追加された項目には テキストの状態 列に +
印がつきます。また、項目のコピー元がツールチップに表示されます。
削除された・紛失した項目です。
ローカル及びリポジトリ内で変更された項目。更新時にマージされます。更新時に競合する かも しれません。
ローカルで変更されリポジトリでは削除された、ないしリポジトリで変更されローカルで削除された項目。更新時に競合が 発生します 。
変更がなくバージョン管理外の項目です。
これはデフォルトの色設定ですが、設定ダイアログで色をカスタマイズできます。詳細は 「TortoiseSVN の色の設定」をご覧ください。
オーバーレイアイコンは他の状態を表示するためにも使われます。次のスクリーンショットは、必要な時に表示される可能性のあるすべてのオーバーレイを示しています。
オーバーレイは次の状態を示しています。
チェックアウトの深さがこの項目のみ
、つまりこの項目のみであることを示します。
チェックアウトの深さが子階層のファイルのみ
、つまりこの項目と、子フォルダーを除いたすべての子階層のファイルのみであることを示します。
チェックアウトの深さが直接の子階層
、つまりこの項目と、すべての子階層のファイルとフォルダーを含め、子フォルダーの子フォルダーは除外されていることを示します。
ネストされた項目、つまり、作業コピーの中にある作業コピー。
外部項目、つまり、svn:externals
プロパティで追加されたすべての項目。
コミット後に復元された項目。詳しくは「ファイルの一部だけをコミットする」をご覧ください。
svn:mergeinfo
プロパティが変更された項目。それ以外のプロパティが変更されても、このオーバーレイは使われません。
異なるリポジトリのパスに切り替えた項目には、(s)
印が示されます。ブランチで何かの作業を行った後で、トランクに切り替え忘れることがあるかもしれません。これが警告のサインです。コンテキストメニューを使用すれば、通常のパスに切り替えることができます。
このダイアログのコンテキストメニューから、変更点の差分を表示することができます。 自分 が行ったローカルの変更をチェックするには、 → を使用してください。他人が行ったリポジトリへの変更は、 → を使用してください。
個々のファイルの変更を取り消すこともできます。誤ってファイルを消してしまった場合には、 紛失 と表示されますし、 変更の取り消し を実行すればファイルを回復することができます。
バージョン管理外のファイルや無視されたファイルは、 Shift キーを押したまま 削除 をクリックしてください。
→ でごみ箱に送ることができます。完全に(ごみ箱を経由させずに)ファイルを削除するには、ファイルの中を確認したければ、テキストエディターや IDE のような別のアプリケーションにファイルをドラッグするか、エクスプローラーのフォルダーにドラッグするかすれば、コピーを保存することができます。
リストの列はカスタマイズできます。列見出しの上で右クリックすると、表示する列を選択するコンテキストメニューが表示されます。また、列の境界上にマウスを持っていくとドラッグハンドルが表示され、列幅を変更できます。カスタマイズ結果は保存されるので、次回以降も同じ列見出しになります。
関連のない複数の仕事を一度に行った場合、変更リストにファイルをグループ化することもできます。詳しくは 「変更リスト」 をご覧ください。
ダイアログの下部に、作業コピーで使われている、リポジトリリビジョンの範囲の概要を表示しています。これは 更新 リビジョンではなく コミット リビジョンであり、ファイルが更新されたリビジョンではなく、ファイルが最後にコミットされた時のリビジョン範囲を表しています。作業コピー全体ではなく、表示されている項目のみのリビジョン範囲であることに注意してください。作業コピー全体に対してこの情報を表示する場合は、 表示する項目 の 未変更 チェックボックスにチェックを入れてください。
作業コピーに含まれるすべてのファイルやフォルダーを一度に表示したいような場合は、 変更をチェック ダイアログが一番簡単です。 表示する項目 の 未変更 チェックボックスにチェックをつけると、作業コピー内のすべてのファイルが表示されます。
Subversion の外部でファイルの名前が変更された場合、ファイル一覧で紛失ファイルとして表示されたり、バージョン管理外ファイルとして表示されたりします。履歴を失わないように Subversion に関連を通知する必要があります。古い名前(紛失)と新しい名前(バージョン管理外)を選択し、
→ を実行すれば、名前の変更が行われたことを示すことができます。ファイルのコピーをしたのに、 Subversion コマンドで行うのを忘れた場合、新しいファイルが履歴を失わないように、そのコピーを修復できます。古い名前(通常ないし変更)と新しい名前(バージョン管理外)を選択し、
→ を実行するだけで、ファイルのコピーが行われたことを示すことができます。ファイルの中でどのような変更をしたのか確認する場合は、変更のあるファイルを選択して、TortoiseSVN のコンテキストメニューから BASE
リビジョン)とを比較できます。
作業コピー内にない場合や、複数のバージョンがある場合でも、差分を表示できます。
エクスプローラーで比較したい2つのファイルを選択(例えば Ctrl を押しながらクリック)し、 TortoiseSVN のコンテキストメニューから を選択してください。最後にクリックしたファイル(フォーカスのある、つまり点線の四角で囲まれているもの)を最新として扱います。