作業コピーで作業している際、どのファイルを変更、追加、削除、またはリネームしたか、あるいは他の人がどのファイルを変更してコミットしたかを知る必要がよくあります。
Subversionリポジトリから作業コピーをチェックアウトすると、アイコンが変更されたファイルがWindowsエクスプローラーに表示されます。これがTortoiseSVNが非常に普及している理由の一つです。TortoiseSVNは、いわゆるオーバーレイアイコンを各ファイルアイコンに追加し、元のファイルアイコンに重ねて表示します。ファイルのSubversionステータスに応じて、オーバーレイアイコンは異なります。
新規にチェックアウトした作業コピーには、オーバーレイとして緑色のチェックマークが付いています。これは、Subversionのステータスがnormalであることを意味します。
ファイルの編集を開始するとすぐに、ステータスはmodifiedに変更され、アイコンオーバーレイは赤い感嘆符に変わります。これにより、最後に作業コピーを更新してから変更され、コミットする必要があるファイルを簡単に確認できます。
更新中にconflictが発生した場合、アイコンは黄色の感嘆符に変わります。
ファイルにsvn:needs-lock
プロパティを設定した場合、Subversionはそのファイルのロックを取得するまで読み取り専用にします。このようなファイルには、編集する前に最初にロックを取得する必要があることを示すこのオーバーレイが表示されます。
ファイルのロックを保持していて、Subversionのステータスがnormalの場合、このアイコンオーバーレイは、他の人が変更をファイルにコミットできるように、使用していない場合はロックを解除する必要があることを示します。
このアイコンは、現在のフォルダー内の一部のファイルまたはフォルダーがバージョン管理からdeletedされるようにスケジュールされているか、バージョン管理下のファイルがフォルダー内で見つからないことを示します。
プラス記号は、ファイルまたはフォルダーがバージョン管理にaddedされるようにスケジュールされていることを示します。
バー記号は、ファイルまたはフォルダーがバージョン管理の目的でignoredされていることを示します。このオーバーレイはオプションです。
このアイコンは、バージョン管理下にないが、無視されていないファイルとフォルダーを示します。このオーバーレイはオプションです。
実際には、これらのアイコンがすべてシステムで使用されているわけではない場合があります。これは、Windowsで許可されるオーバーレイの数が非常に限られており、古いバージョンのTortoiseCVSも使用している場合、利用可能なオーバーレイのスロットが十分にないためです。TortoiseSVNは「“Good Citizen (TM)”」であろうとし、他のアプリケーションにも機会を与えるためにオーバーレイの使用を制限しています。
現在、Tortoiseクライアント(TortoiseCVS、TortoiseHgなど)が増えており、アイコンの制限が実際の問題になっています。これを回避するために、TortoiseSVNプロジェクトは、すべてのTortoiseクライアントで使用できるDLLとしてロードされる共通の共有アイコンセットを導入しました。これがまだ統合されているかどうか、クライアントプロバイダーに確認してください :-)
アイコンオーバーレイがSubversionステータスおよびその他の技術的な詳細にどのように対応するかについての説明は、「アイコンオーバーレイ」というセクションをお読みください。
アイコンオーバーレイだけでは不十分で、ファイル/ディレクトリに関するより詳細な情報が必要になる場合があります。Subversionが提供するすべての情報をエクスプローラーのプロパティダイアログで取得できます。ファイルまたはディレクトリを選択し、コンテキストメニューから → を選択するだけです(注:これはエクスプローラーが提供する通常のプロパティメニューエントリであり、TortoiseSVNサブメニューのプロパティメニューエントリではありません!)。プロパティダイアログボックスで、TortoiseSVNはSubversion管理下のファイル/フォルダー用の新しいプロパティページを追加しました。ここでは、選択したファイル/ディレクトリに関するすべての関連情報を確認できます。
どのファイルを変更したか、また他の人がどのファイルを変更してコミットしたかを知ることは非常に役立ちます。そこで、 → コマンドが役立ちます。このダイアログには、作業コピー内で何らかの方法で変更されたすべてのファイルと、未バージョン管理のファイルが表示されます。
Shiftキーを押したまま ボタンをクリックする必要があります。
をクリックすると、リポジトリ内の変更も確認できます。そうすることで、更新前に競合の可能性がないか確認できます。フォルダー全体を更新せずに、リポジトリから選択したファイルを更新することもできます。デフォルトでは、 ボタンは、作業コピーのチェックアウト深度でリモートステータスのみを取得します。チェックアウトしていないファイルも含め、リポジトリ内のすべてのファイルとフォルダーを表示する場合は、ダイアログでは、ステータスを強調表示するために色分けを使用しています。
ローカルで変更された項目。
変更されていないファイルが移動されたディレクトリ内にある場合、ステータス列に+
記号が表示され、青色で色付けされます。
追加された項目。履歴とともに追加された項目には、テキストステータス列に+
記号が表示され、ツールチップには項目がコピーされた場所が表示されます。
削除または見つからない項目。
ローカルおよびリポジトリで変更された項目。変更は更新時にマージされます。これらは更新時に競合が発生する可能性があります。
ローカルで変更されリポジトリで削除された項目、またはリポジトリで変更されローカルで削除された項目。これらは更新時に競合が必ず発生します。
変更なしおよび未バージョン管理の項目。
これはデフォルトの配色ですが、設定ダイアログを使用してこれらの色をカスタマイズできます。詳細については、「TortoiseSVNカラー設定」というセクションをお読みください。
オーバーレイアイコンは、他の状態を示すためにも使用されます。以下のスクリーンショットは、必要に応じて表示される可能性のあるすべてのオーバーレイを示しています。
オーバーレイは、次の状態に対して表示されます
チェックアウト深度empty
、つまり項目自体のみ。
チェックアウト深度files
、つまり項目自体とすべての子ファイル(子フォルダーを除く)のみ。
チェックアウト深度immediates
、つまり項目自体とすべての子ファイルおよび子フォルダー(子フォルダーの子を除く)のみ。
ネストされた項目、つまり作業コピー内の作業コピー。
外部項目、つまりsvn:externals
プロパティを介して追加されたすべての項目。
コミット後に復元される項目。詳細については、「ファイルの一部のみをコミットする」というセクションを参照してください。
プロパティの変更がある項目。ただし、svn:mergeinfo
プロパティのみ。他のプロパティが変更された場合、オーバーレイは使用されません。
別のリポジトリパスに切り替えられた項目も、(s)
マーカーを使用して示されます。ブランチで作業中に何かを切り替えて、トランクに戻すのを忘れた可能性があります。これは警告サインです!コンテキストメニューを使用すると、それらを通常のパスに再度切り替えることができます。
ダイアログのコンテキストメニューから、変更の差分を表示できます。自分が行ったローカルの変更を確認します。 → を使用して、他の人が行ったリポジトリ内の変更を確認します。
→ を使用して、個々のファイルの変更を元に戻すこともできます。ファイルを誤って削除した場合、Missingとして表示され、Revertを使用して復元できます。
未バージョン管理および無視されたファイルは、削除をクリックするときにShiftキーを押したままにします。
→ を使用して、ここからごみ箱に送ることができます。ファイルを完全に削除する(ごみ箱をバイパスする)場合は、ファイルを詳細に調べたい場合は、ここからテキストエディターやIDEなどの別のアプリケーションにドラッグするか、エクスプローラーのフォルダーにドラッグするだけでコピーを保存できます。
列はカスタマイズ可能です。任意の列ヘッダーを右クリックすると、表示する列を選択できるコンテキストメニューが表示されます。列の境界線にマウスを移動したときに表示されるドラッグハンドルを使用して、列幅を変更することもできます。これらのカスタマイズは保持されるため、次回も同じ見出しが表示されます。
一度に複数の無関係なタスクに取り組んでいる場合は、ファイルをチェンジリストにグループ化することもできます。詳細については、「チェンジリスト」というセクションをお読みください。
ダイアログの下部には、作業コピーで使用されているリポジトリリビジョンの範囲の概要が表示されます。これらはコミットリビジョンであり、更新リビジョンではありません。これらは、これらのファイルが最後にコミットされたリビジョンの範囲を表し、更新されたリビジョンを表すものではありません。表示されるリビジョン範囲は、作業コピー全体ではなく、表示されている項目にのみ適用されることに注意してください。作業コピー全体の情報を確認する場合は、変更なしのファイルを表示チェックボックスをオンにする必要があります。
作業コピーのフラットビュー、つまりフォルダー階層のすべてのレベルですべてのファイルとフォルダーを表示したい場合は、変更の確認ダイアログがそれを実現する最も簡単な方法です。変更なしのファイルを表示チェックボックスをオンにするだけで、作業コピー内のすべてのファイルが表示されます。
ファイルがSubversionの外部でリネームされ、ファイルリストに見つからないファイルと未バージョン管理のファイルとして表示されることがあります。履歴を失わないようにするには、Subversionに接続を通知する必要があります。古い名前(見つからない)と新しい名前(未バージョン管理)の両方を選択し、
→ を使用して、2つのファイルをリネームとしてペアリングします。ファイルのコピーを作成したが、Subversionコマンドを使用するのを忘れた場合、新しいファイルが履歴を失わないようにそのコピーを修復できます。古い名前(normalまたはmodified)と新しい名前(未バージョン管理)の両方を選択し、
→ を使用して、2つのファイルをコピーとしてペアリングします。変更した内容を確認するために、ファイルの中身を確認したいことがよくあります。これを実現するには、変更されたファイルを選択し、TortoiseSVNのコンテキストメニューからBASE
リビジョン)の元のコピーが比較されます。元のコピーは、最後のチェックアウトまたは更新後に保存されたものです。
作業コピー内にない場合や、ファイルの複数のバージョンが散在している場合でも、差分を表示できます。
エクスプローラーで比較する2つのファイルを選択し(例:Ctrlキーとマウスを使用)、TortoiseSVNのコンテキストメニューから を選択します。最後にクリックしたファイル(フォーカスのあるファイル、つまり点線の長方形)が後のファイルと見なされます。