TortoiseSVN の設定

マウスポインタをしばらくエディットボックスやチェックボックスなどの上に置いておくと、ヘルプのツールチップがポップアップして、設定がなんのために変更できるのかが分かります。

一般設定

図 5.50. 設定ダイアログの一般ページ

設定ダイアログの一般ページ


このダイアログでは、好みの言語を指定したり、Subversion 特有の設定を行うことができます。

言語

ユーザインターフェースの言語を選択してください。他に何かありますか?

毎週、最新のバージョンのチェックを自動的に行う

チェックすると、TortoiseSVN は週に一度、プログラムの新バージョンがないかダウンロードサイトに接続します。すぐに答えが知りたければ、今すぐチェック を使用してください。新バージョンがダウンロードされるわけではありません。単に新バージョンがあるという、情報ダイアログが表示されるだけです。

システムサウンド

TortoiseSVN にはデフォルトでカスタムサウンドが 3 つインストールされています。

  • エラー

  • 注意

  • 警告

Windows のコントロールパネルで別のサウンド (もしくは完全に OFF) を選択できます。設定 はコントロールパネルへのショートカットです。

共通無視パターン

共通無視パターンはバージョン管理外のファイルを、コミットダイアログなどに表示しないようにするのに使用します。パターンにマッチしたファイルはインポートでも無視されます。除外するファイルやディレクトリは、名前や拡張子で判断します。パターンは空白で区切り、*/bin */obj *.bak *.~?? *.jar *.[Tt]mp のようにします。以上のパターンは、N 階層の親ディレクトリを含むパスに対して使用されることをご承知ください。単純なファイル拡張子以外の無視パターンの設定は、前述ほど簡単ではありません。パターンマッチの文法やどのようにパスをチェックするかといった詳細情報は、無視リストでのパターンマッチ項 をご覧ください。

ここで指定した無視パターンは、同じPCで動作する他の Subversion クライアント (コマンドラインクライアントを含む) でも有効になることに注意してください。

注意

共通無視パターンを設定した Subversion 設定ファイルを使用すると、ここでした設定を上書きしてしまいます。Subversion の設定ファイルには、下にある 編集 でアクセスできます。

この無視パターンはすべてのプロジェクトに影響を与えます。バージョン管理されませんので、他のユーザには影響しません。対照的に、バージョン管理で svn:ignore 属性を使用し、バージョン管理からファイルやディレクトリを除外することもできます。詳細は 無視するファイルとディレクトリ項 をご覧ください。

ファイルの日付に 「最後にコミットした日付」 を設定する

このオプションはチェックアウトや更新時にコミット時の日時をファイルの日時として使うよう、TortoiseSVN に指示します。そうでなければ、TortoiseSVN は現在の日時を使用します。ソフトウェアを開発しているなら、ビルドシステムがコンパイルの要否を判断するのにタイムスタンプを使用するので、現在の日付にしておくのが最善でしょう。「最後にコミットした日付」 を使用していて、ファイルを古いリビジョンに戻す場合、プロジェクトがコンパイルされない可能性があります。

Subversion 設定ファイル

Subversion 設定ファイルを直接編集するには 編集 を使用してください。いくつかの設定は TortoiseSVN では直接変更することができません。そのときにこれが必要となります。Subversion の config ファイルについての詳細情報は、Runtime Configuration Area をご覧ください。(訳注 日本語訳は Subversion によるバージョン管理 をご覧ください) Automatic Property Setting 節には興味深い項目があり、これはここで設定します。(訳注 日本語訳は 属性の自動設定 です) Subversion は複数の設定情報を読み込めますが、その優先順位を知っておかなくてはならないことに注意してください。詳細は Configuration and the Windows Registry を参照してください。(訳注 日本語訳は 設定と Windows のレジストリ です)

.svn ディレクトリの代わりに、_svn を使用する

web プロジェクトを使用する際、Subversion が内部情報を格納する .svn フォルダを、VS.NET は扱えません。これは Subversion のバグではありません。VS.NET とそこで使用する frontpage 拡張のバグです。この件に関してもっと調べるには Subversion の作業フォルダ項 をご覧ください。

Subversion や TortoiseSVN の振る舞いを変更する場合、これを制御する環境変数を設定するのに、チェックボックスを使用できます。

このオプションを変更すると、既存の作業コピーを新しい管理下のディレクトリに、自動でコンバートできないことに注意してください、スクリプトを使って自分で行うか、単純に新しい作業コピーをチェックアウトする必要があります。

コンテキストメニュー設定

図 5.51. 設定ダイアログ、コンテキストメニューページ

設定ダイアログ、コンテキストメニューページ


このページでは、メインコンテキストメニューと TortoiseSVN サブメニューに現れる TortoiseSVN コンテキストメニューエントリを指定できます。デフォルトでは、ほとんどの項目にチェックが付いておらず、サブメニューに表示されません。

ロックを取得 は特殊です。もちろん上のリストを用いてトップレベルに表示できますが、ロックの必要がないほとんどのファイルにとっては乱雑なだけです。しかし、svn:needs-lock 属性が設定されているファイルには、いつでも編集できるように、このアクションが必要です。この場合トップレベルに表示している方が便利です。このボックスをチェックしておくと、svn:needs-lock 属性が設定されているファイルを選択すると、ロックを取得 がいつでもトップレベルに表示されるようになります。

TortoiseSVN ダイアログ設定 1

図 5.52. 設定ダイアログ、ダイアログ 1 ページ

設定ダイアログ、ダイアログ 1 ページ


このダイアログでは、TortoiseSVN のダイアログをお好みに設定できます。

デフォルトのログメッセージ数

TortoiseSVNログを表示 を選択して最初に TortoiseSVN が趣得するログメッセージの数を制限します。サーバへの接続が遅い場合に便利です。もっとメッセージを取得するには 全て表示次の 100 をいつでも使用できます。

ログメッセージ用フォント

リビジョンログダイアログ中央ペインのログメッセージを表示するフォントとサイズを指定します。これは、コミットダイアログのログメッセージ編集時にも使われます。

ログメッセージに短い日付形式を利用する

標準の長いメッセージ形式で使用するには画面が狭い場合、短い形式を利用します。

進行ダイアログ

TortoiseSVN はアクション中にエラーがなく終了すると、進行ダイアログを自動で閉じることができます。この設定でダイアログを閉じる条件を選択できます。デフォルト (お勧め) 設定は 手動で閉じる で、全メッセージを見て、何が起きたのかチェックできます。しかし、ある種のメッセージは無視して、重要な変更がなければ自動で閉じてもらいたいということもあります。

マージ、追加、削除が無い場合は自動的に閉じる は、単純な更新のみの場合は進行ダイアログを閉じますが、リポジトリからの変更をマージする必要がある場合や、ファイルの追加・削除がある場合はダイアログを開いたままにします。また処理中に、なんらかの競合やエラーが発生した場合にも開いたままになります。

手元の操作でマージ、追加、削除が無い場合は自動的に閉じる は、マージ、追加、削除が無い場合は自動的に閉じる のように進行ダイアログを閉じますが、ファイルの追加や、変更の取り消しなど手元の操作の場合のみに作用します。リモート操作では、ダイアログが開いたままになります。

競合がない場合は自動的に閉じる はもっと基準をゆるめ、マージ、追加、削除が起きてもダイアログを閉じますが、競合が発生した場合はダイアログを開いたままにします。

エラーがない場合は自動的に閉じる は競合があっても常にダイアログを閉じます。ダイアログが開いたままになる条件は、Subversion が処理を継続できないようなエラーの発生です。例えば、サーバにアクセスできずに更新が失敗したり、作業コピーが最新ではなくコミットができない場合です。

作業コピーの URL を 「元:」 のデフォルトURLとして利用する

マージダイアログでは、デフォルトの動作は 元: の URL を記憶している所にマージします。しかし、階層内のいくつもの違う場所からマージを実行したい人もいますし、現在の作業コピーの URL からはじめる方が簡単な場合があります。また、別のブランチにある平行したパスを参照しながら編集するのにも利用できます。

デフォルトチェックアウトパス

チェックアウトのデフォルトパスを指定できます。チェックアウトした物をすべて一カ所に保持しておく場合、ドライブやフォルダをあらかじめ設定しておいてくれ、最後に新しいフォルダ名を追加するだけですみます。

デフォルトチェックアウト URL

チェックアウトのデフォルト URL も指定できます。非常に大きいプロジェクトのサブプロジェクトをちょくちょくチェックアウトする場合、URL をあらかじめ設定しておいてくれ、最後にサブプロジェクト名を追加するだけですみます。

TortoiseSVN ダイアログ設定 2

図 5.53. 設定ダイアログ、ダイアログ 2 ページ

設定ダイアログ、ダイアログ 2 ページ


バージョン管理外フォルダの再帰検索

チェックされている (デフォルト状態) と、常にバージョン管理外のフォルダ (とそれ以下のすべてのファイル・フォルダ) を 追加, コミット, 変更をチェック ダイアログに表示します。チェックしないと、バージョン管理外の先頭しか表示しません。チェックしなければ、上記のダイアログを散らかさずにすみます。この場合、バージョン管理外のフォルダを追加するよう選択すると、再帰的に追加します。

ファイルのパスやキーワードの自動補完を利用する

コミットダイアログはコミットするファイル名の一覧を保持しています。一覧にある項目の始めの 3 文字をタイプすると、自動補完ボックスがポップアップし、Enter を押すとファイル名が補完されます。チェックするとこの機能が有効になります。

自動補完のパースがタイムアウトするまでの時間(秒)

大きなファイルをチェックしていて、自動補完パーサが遅すぎることがあります。コミットダイアログが長い時間止まってしまうのなら、ここで指定した時間でタイムアウトするようになります。重要な自動補完情報を見逃してしまうのなら、タイムアウトを長くできます。

tsvn:projectlanguage が設定されている場合はスペルチェッカを利用する

コミット時にスペルチェッカを使用しない場合、ここにチェックをつけてください。プロジェクト属性で必要だと指定したときだけ、動作するようになります。

ログメッセージの履歴で表示する最大の項目数

TortoiseSVN は、リポジトリごとに最新のログメッセージを 25 個記憶しています。ここでその数をカスタマイズできます。たくさんの異なるリポジトリがあるなら、レジストリがいっぱいにならないように、少なくしておくといいでしょう。

コミットに失敗した場合はコミットもしくは分岐/タグダイアログを再表示する

何らかの理由でコミットが失敗 (作業コピーを更新する必要があったり、pre-commit フックスクリプトがコミットを拒否したり、ネットワークエラーなど) したときに、もう一度できるようにコミットダイアログを開いたままにするのに、このオプションを選択できます。しかし、このオプションが原因で問題が起こる可能性があることを知っておいてください。作業コピーを更新する必要があるという理由で失敗した場合、更新して競合が発生したら、まずこれを解決しなければなりません。

項目を自動的に選択する

コミットダイアログの通常動作は、全ての (バージョン管理下の) 変更があるファイルをコミットするよう、自動的に選択します。はじめに何も選択せず、コミットする項目を自分で選択する場合、このチェックボックスのチェックを外してください。

スタートアップ時にリポジトリへアクセスする

デフォルトで、変更をチェックダイアログが作業コピーのチェックをするようになります。また、リポジトリをチェック をクリック時にリポジトリへの接続のみ行うようになります。リポジトリを常にチェックしたい場合、この設定で自動的にチェックが行われるようになります。

ファイルをロックする前にロックダイアログを表示する

ひとつないし複数のファイルを選択し、TortoiseSVNロック を使用してそのファイルをロックする際、プロジェクトによっては、なぜそのファイルをロックしたかを説明するロックメッセージを書くことになっています。ロックメッセージを使用しない場合には、このチェックボックスのチェックをはずすと、ダイアログをスキップし、すぐにファイルをロックします。

フォルダにたいしてロックコマンドを使用する場合、ロックするファイルを選択するため、常にロックダイアログを表示します。

プロジェクトで tsvn:lockmsgminsize 属性を使用している場合、そのプロジェクトはロックメッセージが 必須 なので、設定がどうであってもロックダイアログを表示します。

TortoiseSVN での色設定

図 5.54. 設定ダイアログ、色設定ページ

設定ダイアログ、色設定ページ


このダイアログでは、TortoiseSVN のダイアログで使用するテキストの色をお好みに変更できます。

競合・妨害

更新中やマージ中に発生した競合。既存のバージョン管理外のファイル・フォルダと同じ名前のバージョン管理下のものがあると更新は妨害されます。

進行ダイアログのエラーメッセージにも使用します。

追加したファイル

リポジトリに追加した項目。

紛失・削除・置換

リポジトリから削除された項目、作業コピーから紛失した項目、作業コピーから削除された項目、同じ名前で置き換えられた項目。

マージ済み

リポジトリからの変更を、競合もなく作業コピーにうまくマージしました。

変更・コピー

履歴に追加されるかリポジトリ内のパスをコピーした項目。ログダイアログでも、コピーされた項目を含む場合に使用されます。

削除したノード

リポジトリからすでに削除された項目。

追加したノード

(追加・コピー・移動操作で) リポジトリに追加した項目。

名前を変更したノード

リポジトリで名前の変更があった項目。

置換

元の項目が削除され、同じ名前で新しく作成された項目。

アイコンオーバレイ設定

図 5.55. 設定ダイアログ、アイコンオーバーレイページ

設定ダイアログ、アイコンオーバーレイページ


このページでは、TortoiseSVN が表示するアイコンオーバーレイの項目を選択できます。

デフォルトでは、オーバレイアイコンやコンテキストメニューは 開く・保存ダイアログでも、Windows エクスプローラのように表示されます。Windows エクスプローラでのみ表示するようにするなら、エクスプローラ上でのみオーバレイを表示する をチェックしてください。

無視する項目やバージョン管理外の項目は、通常オーバーレイを表示しません。これらもオーバーレイを表示する場合は、このチェックボックスにチェックしてください。

バージョン管理外のファイルを含むフォルダに、変更済マークをつけるようにもできます。これにより、まだバージョン管理下に入れてない新しいファイルを作成したのを、覚えておくのに便利です。このオプションは、キャッシュオプション (後述) が デフォルト の場合にのみ有効です。

作業コピーの状態を取得するには時間がかかるため、エクスプローラがオーバーレイアイコンを表示するのに負荷がかからないように、TortoiseSVN は状態をキャッシュに格納します。システムや作業コピーのサイズをもとに、TortoiseSVN が使用するキャッシュタイプを以下から選択できます。

デフォルト

別のプロセス (TSVNCache.exe) がすべての状態情報をキャッシュします。このプロセスは、全ドライブの変更を監視し、作業コピー内のファイルが更新されれば、その状態情報を再取得します。優先度が最低で動作しますので、他のプログラムが、これによりリソースをとられてしまうことはありません。これは状態情報が リアルタイム で更新されないということでもありますが、数秒でオーバーレイアイコンは更新されます。

利点: オーバーレイアイコンは状態を再帰的に表示します。つまり、作業コピーの深いところにあるファイルが更新されると、作業コピーのルートまでの全フォルダにも更新オーバーレイアイコンが付きます。さらにプロセスがシェルに通知を送れるのなら、通常、左のツリービューのオーバーレイも変更します。

欠点: プロジェクトについて作業をしていないときでも、プロセスが一定に動作しています。さらに、作業コピーのサイズ・数量にも依存しますが、およそ 10-50 MB の RAM を使用します。

シェル

シェル拡張 dll の内部で直接キャッシュします。別のフォルダに移るたびに、ステータス情報を取得します。

利点: メモリ消費がとても少なく (およそ 1 MB の RAM) てすみます。また、状態をリアルタイム に表示します。

欠点: 1 つのフォルダしかキャッシュしないため、オーバーレイアイコンは状態を再帰的に表示しません。大きな作業コピーでは、デフォルトのキャッシュよりも、エクスプローラのフォルダ表示に時間がかかります。また、mime-type 列が利用できません。

なし

この設定では、TortoiseSVN はエクスプローラで状態をまったく取得しません。このため、ファイルはオーバーレイアイコンを取得できず、バージョン管理されたフォルダは 「通常」のオーバーレイアイコンしか取得しません。他のオーバーレイは表示されず、他の方法では有効だった、追加の列は無効になります。

利点: 追加でメモリを使用することは絶対になく、閲覧中にエクスプローラが遅くなることもありません。

欠点: ファイル・フォルダの状態情報は、エクスプローラに表示されません。作業コピーの変更点を見るには、「変更をチェック」 ダイアログを使用しなければなりません。

次のグループでは、オーバーレイを表示するストレージの種類を選択できます。デフォルトでは、ハードディスクドライブしか選択されていません。アイコンオーバレイをすべて無効にもできますが、そんなことしたいですか?

ネットワークドライブはとても遅いので、デフォルトでは、ネットワーク共有上にある作業コピーにアイコンを表示しません。

USB フラッシュドライブは、ドライブタイプがデバイスそのもので特定されるので、特殊なケースのように思えます。ある種のものは固定ドライブに見え、別のある種のものはリムーバブルドライブに見えます。

除外するパス は、アイコンオーバーレイや状態列を表示しないよう TortoiseSVN に指示する場合に使用します。変更する予定のないライブラリのみを含む非常に大きな作業コピーがあって、オーバーレイさせる必要がない場合に便利です。以下に例を示します。

f:\development\SVN\Subversion では、指定したフォルダ のみ オーバーレイを無効にします。このフォルダ内の全ファイル・フォルダのオーバーレイはまだ見ることができます。

f:\development\SVN\Subversion* では、f:\development\SVN\Subversion で始まる すべて のファイル・フォルダでオーバーレイが無効になります。このパス以下のいずれのファイル・フォルダでもオーバーレイをさせたくないという意味になります。

含めるパス にも同じことが言えます。オーバーレイが無効になるドライブタイプや、除外パスで指定したパスでも、オーバーレイされるようになります。

この 3 つの設定はどのように影響するのかといった問い合わせが、たまにあります。間違いない回答は以下になります。

if (含めるリストにあるパス)
  オーバーレイを表示
if (許可されたドライブの種類に属するパス) AND (除外するリストにないパス)
  オーバーレイを表示

含めるリストは 常に オーバーレイを表示します。一方、ドライブの種類でチェックされたドライブは、除外するパスを 除いて、すべて表示されます。

TSVNCache.exe は、検索するパスを制限することもできます。特定のフォルダ以下のみを見たい場合は、全ドライブタイプで無効にし、スキャンしたい特別なフォルダのみを含めてください。

SUBST ドライブの除外

作業コピーにアクセスするのに、以下のように SUBST ドライブを使用すると便利なことがあります。

subst T: C:\TortoiseSVN\trunk\doc

しかし、TSVNCache がファイルが変更されたという通知をひとつしか受け取れず、それは通常オリジナルパスに対してであるため、オーバーレイを更新できません。これは、subst パスのオーバーレイはまったく更新されない可能性があるということでもあります。

これに対処する簡単な方法は、オーバーレイ表示からオリジナルのパスを除外し、代わりに subst パスにオーバーレイを表示することです。

時には、作業コピーに含まれる領域を TSVNCache の検索・変更監視から除外し、しかしバージョン管理下であることを視覚表示したいことがあります。'通常' として除外フォルダを表示する チェックボックスで、そのようにできます。このオプションにより、除外領域 (チェックしないドライブタイプや除外指定した場所) にあるバージョン管理下のフォルダには、緑のチェックマークで、通常でかつ最新であるという表示がつきます。これにより、作業コピーを見ていることをお知らせしますが、フォルダのオーバーレイはおそらく正しくないでしょう。ファイルには、オーバーレイがまったく付きません。オーバーレイは表示されませんが、コンテキストメニューは有効なことにご注意ください。

この特殊な例外として、A: ドライブと B: ドライブは'通常' として除外フォルダを表示する オプションのようには動作しません。これは、Windows がエクスプローラの起動時に、PC にフロッピードライブがあっても、数秒の遅延が考えられるドライブを強制的に参照するからです。

アイコンセットの選択

図 5.56. 設定ダイアログ、アイコン設定ページ

設定ダイアログ、アイコン設定ページ


オーバーレイアイコンをお好みのものに変更できます。オーバーレイアイコンセットを変更したときに、変更を有効にするにはコンピュータの再起動が必要なことに注意してください。

ネットワーク設定

図 5.57. 設定ダイアログのネットワークページ

設定ダイアログのネットワークページ


リポジトリごとにプロキシの設定をする必要がある場合、設定に Subversion servers ファイルを使用する必要があります。直接行う場合 編集 を使用してください。このファイルの使用法の詳細は、Runtime Configuration Area で説明しています。(訳注 日本語訳は Subversion によるバージョン管理 です)

TortoiseSVN が svn+ssh リポジトリと安全な接続を確立するのに使用するプログラムを指定できます。私たちは TortoisePlink.exe をお勧めします。これは TortoiseSVN に含まれている一般的な Plink プログラムです。ですがウィンドウなしアプリとしてコンパイルされているため、認証するたびに DOS ボックスがポップアップする、ということはありません。

実行ファイルのフルパスを指定しなければなりません。TortoisePlink.exe の場合、 TortoiseSVN の標準 bin ディレクトリにあります。その場所を指定するのに 参照 ボタンが役に立ちます。

ウィンドウを持たないということの側面として、いずれのエラーメッセージも行き場がないということがあります。そのため、認証が失敗したときに 「標準出力に書き込めません」 といった簡単なメッセージしか得られません。このため、まず標準の Plink をセットアップすることをお勧めします。すべて動作すれば、TortoisePlink を全く同じパラメータで使用できます。

TortoisePlink 自身は、Plink のちょっとした派生物のためドキュメントがありません。コマンドラインパラメータは PuTTY のウェブサイト で参照してください。

パスワードを繰り返し入力しなくてもいいように、Pageant のようにパスワードキャッシュツールの使用も検討する必要があるでしょう。これも PuTTY のウェブサイトでダウンロードできます。

最終的に、サーバとクライアントにSSHを設定するのは、このヘルプファイルの範疇を超えている重要なプロセスです。しかし、TortoiseSVN FAQ にリストされている Subversion/TortoiseSVN SSH How-To にガイドがあります。

外部プログラムの設定

図 5.58. 設定ファイルの差分ビューアページ

設定ファイルの差分ビューアページ


ここでは、TortoiseSVN が使用する 差分/マージプログラムを定義できます。基本設定では TortoiseSVN と一緒にインストールされる TortoiseMerge が使われます。

TortoiseSVN と一緒に使用する外部 差分/マージプログラムの一覧は、外部 Diff/Merge ツール項 をご覧ください。

差分ビューア

外部差分プログラムは、ファイルを異なるリビジョン間で比較するのに使用します。外部プログラムは、それぞれのコマンドラインオプションに従って、コマンドラインからファイル名を取得する必要があります。TortoiseSVN は % が先頭についた置換パラメータを使用します。このパラメータが現れると、適切な値に置換されます。パラメータの順番はお使いの差分ツールに依存しています。

%base

変更していないオリジナルのファイル

%bname

BASE ファイルのウィンドウタイトル

%mine

変更を行ったあなたのファイル

%yname

あなたのファイルのウィンドウタイトル

ウィンドウタイトルは純粋なファイル名ではありません。TortoiseSVN は表示するための名前で扱い、それによって名前を作成します。つまり、リビジョン 123 のファイルから作業コピーのファイルへ差分を取る場合、名前は filename : revision 123filename : 作業コピー となります。

以下に例を示します。ExamDiff Pro の場合:

C:\Path-To\ExamDiff.exe %base %mine

KDiff3 の場合:

C:\Path-To\kdiff3.exe %base %mine --L1 %bname --L2 %yname

WinMerge の場合:

C:\Path-To\WinMerge.exe -e -ub -dl %bname -dr %yname %base %mine

Araxis の場合:

C:\Path-To\compare.exe /max /wait /title1:%bname /title2:%yname
    %base %mine

キーワード、特にファイルの リビジョン 展開に svn:keywords を使用する場合、キーワードの現在値によって、厳密には違いがでるかもしれません。また、svn:eol-style = native を使用しているなら、BASE ファイルの行末は純粋に LFになっているでしょうが、手元のファイルの行末は CR-LF かもしれません。通常 TortoiseSVN は 差分操作の前に、BASE ファイルに対しキーワード展開や行末を分析して自動的にこの違いを隠蔽します。しかしこの操作は時間がかかる可能性があります。BASE に対する差分の時はファイルを変換する にチェックがなければ、TSVN はファイルに対する事前処理をスキップします。

Subversion の属性用に別の diff ツールを指定することもできます。属性は短く簡単な文字列である傾向があるので、シンプルでもっとコンパクトなビューアを使いたくなるかもしれません。

代替 diff ツールを設定すると、コンテキストメニューから TortoiseMerge サードパーティツールにアクセスできます。コンテキストメニューDiff で優先 diff ツールを使用し、Shift+ コンテキストメニューDiff で代替 diff ツールを使用します。

マージツール

外部マージプログラムを競合したファイルの解消に使用します。パラメータを差分プログラムと同様の方法で置換します。

%base

誰も変更していないもとのファイル

%bname

BASE ファイルのウィンドウタイトル

%mine

自分の変更がある自分のファイル

%yname

あなたのファイルのウィンドウタイトル

%theirs

リポジトリにあるファイル

%tname

リポジトリにあるファイルのウィンドウタイトル

%merged

マージ操作をした結果の競合ファイル

%mname

マージしたファイルのウィンドウタイトル

以下に例を示します。Perforce Merge の場合:

C:\Path-To\P4Merge.exe %base %theirs %mine %merged

KDiff3 の場合:

C:\Path-To\kdiff3.exe %base %mine %theirs -o %merged
    --L1 %bname --L2 %yname --L3 %tname

Araxis の場合:

C:\Path-To\compare.exe /max /wait /3 /title1:%tname /title2:%bname
    /title3:%yname %theirs %base %mine %merged /a2

WinMerge (2.8 以降) の場合:

C:\Path-To\WinMerge.exe %merged

差分 / マージの高度な設定

図 5.59. 設定ダイアログの差分/マージ の高度な設定ダイアログ

設定ダイアログの差分/マージ の高度な設定ダイアログ


高度な設定では、ファイルの拡張子ごとに異なる差分・マージプログラムを定義できます。たとえば、.jpg ファイルの 「差分」 を取るのに Photoshop を関連付けできます。:-) svn:mime-type で差分・マージプログラムと関連付けることもできます。

拡張子を関連付けるには、拡張子を指定する必要があります。Windows ビットマップファイルを指定するには、.BMPとしてください。svn:mime-type 属性を使用して関連付けるには、text/xml のようにスラッシュを含めて mime type を指定してください。

Unified 形式の差分ビューア

unified-diff ファイル (パッチファイル) 用のビューアです。パラメータは必要ありません。デフォルト オプションは .diff ファイル、及び .txt ファイルに関連づけがないかどうかをチェックするためのものです。.diff ファイル用のビューアを持っていなければ、おそらくメモ帳 (NotePad) になるでしょう。

オリジナルの Windows メモ帳は 行末が CR-LF でないファイルをうまく扱えません。ほとんどの unified diff ファイルは 行末が LF のため、メモ帳ではうまく表示できません。しかし、無料のメモ帳の代替ソフトウェアをダウンロードできます。Notepad2 は 行末を正しく表示できるだけでなく、追加・削除した行を、色を変えて表示できます。

保存データの設定

図 5.60. 設定ダイアログ、保存データページ

設定ダイアログ、保存データページ


便宜上、TortoiseSVN はたくさんの設定を保存し、最近の情報を記憶しています。データのキャッシュを削除する場合、ここで行います。

URL 履歴

作業コピーのチェックアウトや、変更点のマージ、リポジトリブラウザの使用の際は常に、TortoiseSVN は直近に使用した URL を記録し、コンボボックスに提供します。時には URL がもう存在しなくなり、リストが散らかりますので、定期的に掃除するのに便利です。

コンボボックスに表示されている 1 項目だけを、その場で削除したい場合、下矢印をクリックしてコンボボックスを開き、削除したい項目にマウスをあわせて、Shift+Del を押してください。

ログメッセージ (入力ダイアログ)

TortoiseSVN は最近の入力したコミットログを保存しています。リポジトリごとに保存していますので、たくさんのリポジトリにアクセスする場合、極度に肥大化してしまうことがあります。

ログメッセージ (ログ参照ダイアログ)

TortoiseSVN は、次回ログを参照した際の時間節約のため、ログ参照ダイアログが取得したログメッセージをキャッシュしています。メッセージがキャッシュされている状態で、他の誰かがログメッセージを編集した場合、キャッシュをクリアしないとその変更を参照できません。ログメッセージのキャッシュはダイアログ 1 タブで有効にできます。

ダイアログのサイズと位置

多くのダイアログは、前回使用したときのサイズと画面内の位置を記憶しています。

認証データ

Subversion サーバの認証を通れば、ユーザ名とパスワードを毎回入力しなくてもいいように、手元にキャッシュしています。セキュリティ上の理由や、リポジトリに別のユーザ名でアクセスするのにクリアしたいかもしれません……ジョンはあなたが彼の PC を使うのを知っていますか?

特定のサーバのみ、認証データをクリアしたければ、キャッシュデータの探し方について、認証項 をご覧ください。

アクションログ

TortoiseSVN は、進行ダイアログに書き込まれたすべてのログを保持しています。これは例えば、最近の更新コマンドで何が起きたのかをチェックしたいときに便利です。

ログファイルは長さを制限しており、大きくなりすぎたときには古い内容から破棄していきます。デフォルトでは 4000 行保持しますが、この数字はカスタマイズできます。

ここからログファイルの内容の確認や消去ができます。

ログのキャッシュ

図 5.61. 設定ダイアログ、ログキャッシュページ

設定ダイアログ、ログキャッシュページ


このダイアログでは、TortoiseSVNのログキャッシュ機能の設定ができます。これはログメッセージと変更したパスのローカルコピーを保持し、サーバからダウンロードの時間消費を防ぎます。ログキャッシュを使用すると、ログダイアログやリビジョングラフが劇的に速くなります。その他にも、オフライン時にもログメッセージを参照できるといった便利な特徴もあります。

ログのキャッシュを有効にする

ログデータが必要な時は常にログのキャッシュを有効にします。チェックすると、キャッシュが有効ならキャッシュからデータを取得します。キャッシュにメッセージがなければ、サーバから取得しキャッシュに追加します。

キャッシュを無効にすると、データを常にサーバから直接取得し、ローカルに保存しません。

リポジトリにアクセスできない場合

オフラインで作業していたり、リポジトリサーバがダウンしていたりした場合でも、ログキャッシュを利用して、すでにキャッシュに保持したログメッセージを提供できます。もちろんキャッシュは最新の状態ではありませんから、この機能を使用するかどうかの選択肢があります。

サーバに接続せず、キャッシュからログデータを取得する際、ダイアログはオフライン状態であることをタイトルバーに表示します。

最新のリビジョンへの更新がタイムアウトになるまでの秒数

ログダイアログを表示する際、通常、新しいログメッセージをチェックするのにサーバに接続すると思います。ここでタイムアウトに 0 以外を指定したばあい、前回の接続からその秒数経過しているときだけ、サーバに接続します。頻繁にログダイアログを開き、サーバが遅い場合、これによりサーバとのやりとりを抑えることができますが、表示されるデータが完全に最新であるとは限りません。この機能を使用する場合は、折衷案として 300 (5 分) とするのをお勧めします。

設定の下部では、ローカルにキャッシュしたリポジトリの一覧を、キャッシュに使用した領域とともに参照できます。リポジトリを選択すると、その下のボタンを使用できます。

ログキャッシュの統計

図 5.62. 設定ダイアログ、ログキャッシュ統計

設定ダイアログ、ログキャッシュ統計


詳細 ボタンをクリックすると、特定のキャッシュの詳細統計を表示します。ここではたくさんの項目が表示され、これは主に TortoiseSVN の開発者が興味を引く項目です。そのため、すべてを詳細に説明することはしません。

RAM

このキャッシュを提供するのに必要なメモリ量です。

ディスク

キャッシュに使用するディスクスペースです。データは圧縮されますので、ディスクの使用量は、一般的にかなり控えめになります。

接続状態

リポジトリが有効なキャッシュを、前回使用したかどうかを表示します。

最終更新日

最後にキャッシュの内容を更新した時間です。

最終取得日

サーバから最新リビジョンを最後に取得した時間です。

作者

キャッシュに記録したメッセージの作者数です。

パス

svn log -v で見られるリストにある、パスの数です。

スキップ範囲

取得していないリビジョン範囲の数で、単純にリクエストしていないものです。キャッシュ内のホール数の尺度になります。

最大リビジョン

キャッシュに格納されている、リビジョン番号の最大値です。

リビジョンカウント

キャッシュに格納されているリビジョン番号の数です。キャッシュの完全性に関する別の尺度になります。

更新 をクリックすると、キャッシュを完全に再読込し、抜けたところを補完します。大きなリポジトリでは、非常に時間がかかりますが、オフラインで作業し、もっともよい状態のキャッシュが必要な場合に便利です。

エクスポート ボタンをクリックすると、キャッシュ全体を CSV ファイルでエクスポートします。ログデータを外部プログラムで処理をする際に便利ですが、主に開発者用でしょう。

削除 をクリックすると、選択したリポジトリのキャッシュデータをすべて削除します。これはそのリポジトリのキャッシュを無効にするものではなく、次回ログデータが必要になると、新しいキャッシュを作成します。

クライアント側フックスクリプト

図 5.63. 設定ダイアログ、フックスクリプトページ

設定ダイアログ、フックスクリプトページ


このダイアログでは、Subversion のアクションに合わせて自動的に実行される、フックスクリプトのセットアップを行えます。対照的に フックスクリプト項 で説明しているフックスクリプトは、クライアントのローカルで実行されます。

ここで言うフックは、コミット後にバージョン番号を更新するため SubWCRev.exe のようなプログラムを起動したり、再構築のトリガになったりします。

様々なセキュリティ上、実装上の理由により、フックスクリプトはプロジェクト属性としてではなく、マシンローカルに定義されます。他の誰かがリポジトリにコミットするのを考慮する必要なく、何を行うかを定義してください。もちろん、スクリプトをバージョン管理下に置くかどうかを、いつでも選べます。

図 5.64. 設定ダイアログ、フックスクリプトの設定

設定ダイアログ、フックスクリプトの設定


新しいフックスクリプトを追加するには、単に 追加 をクリックし、詳細を入力してください。

現在、6 種類のフックスクリプトが使用できます。

Start-commit

コミットダイアログが表示される前に呼ばれます。フックスクリプトがバージョン管理下のファイルを変更したり、コミットするファイルのリストやコミットメッセージに影響を与える場合に使用してください。

Pre-commit

コミットダイアログの OK をクリックした後、実際のコミットが始まる前に呼ばれます。

Post-commit

コミットが完了した後で (成功・失敗に関わらず) 呼ばれます。

Start-update

リビジョンへの更新ダイアログが表示される前に呼ばれます。

Pre-update

Subversion の更新を実際に始める前に呼ばれます。

Post-update

更新が完了した後で (成功・失敗に関わらず) 呼ばれます。

フックは特定の作業コピーのパスに対して定義されます。最上位のパスのみ指定する必要があります。もし、サブフォルダを操作する場合、TortoiseSVN は自動的に上位へマッチするかどうか検索を行います。

次に、実行するコマンドライン (フックスクリプトや実行ファイルのパスを含む) を指定しなければなりません。バッチファイルや、実行ファイル、その他 Windows に関連付けられたファイル (perl スクリプトなど) を指定できます。

コマンドラインには、TortoiseSVN が設定するパラメータを含めます。呼ばれるフックによってパラメータは異なります。各フックは、以下の順番で渡すパラメータを持っています。

Start-commit

PATHMESSAGEFILECWD

Pre-commit

PATHDEPTHMESSAGEFILECWD

Post-commit

PATHDEPTHMESSAGEFILEREVISIONERRORCWD

Start-update

PATHCWD

Pre-update

PATHDEPTHREVISIONCWD

Post-update

PATHDEPTHREVISIONERRORCWD

各パラメータの意味は以下に説明する通りです。

PATH

操作を開始したときのすべてのパスを格納した一時ファイルのパスです。各パスは、一時ファイル内に 1 行ごと格納されています。

DEPTH

コミット・更新が完了した際の深度です。

以下のような有効な値があります。

-2

svn_depth_unknown

-1

svn_depth_exclude

0

svn_depth_empty

1

svn_depth_files

2

svn_depth_immediates

3

svn_depth_infinity

MESSAGEFILE

コミット用のログメッセージを格納しているファイルのパスです。このファイルには、UTF-8 エンコードのテキストが格納されています。start-commit フックの実行が完了すると、ログメッセージを読み返し、フックが変更する機会を与えます。

REVISION

更新したりコミットが完了したときの、リポジトリのリビジョンです。

ERROR

エラーメッセージを含むファイルのパスです。エラーがない場合、このファイルは空になります。

CWD

スクリプトを実行する現在の作業ディレクトリです。これはすべてに影響を与えるパスの、共通のルートディレクトリに設定されます。

Subversion の操作を、フックスクリプトが完了するまで止めておきたい場合は、スクリプトが終了するまで待機 をチェックしてください。

通常、スクリプト実行時に不格好な DOS ウィンドウを隠しておきたいと思います。 そのため 実行時はスクリプトを非表示にする をデフォルトでチェックしてあります。

課題追跡システムとの統合

TortoiseSVN は、コミットダイアログで課題管理システムにクエリを発行するために、COM プラグインを利用できます。そのようなプラグインの利用を、課題追跡システムからの情報取得項 で説明しています。あなたのシステム管理者が、すでにあなたがインストールして登録したプラグインを提供している場合、どのように作業コピーと統合するかをここで指定します。

図 5.65. 設定ダイアログの課題追跡システムとの統合ページ

設定ダイアログの課題追跡システムとの統合ページ


特定の作業コピーでプラグインを使用するには、追加... をクリックしてください。ここで作業コピーのパス、登録済み課題管理システムプラグインのドロップダウンリストでの選択、渡す任意のパラメータの指定ができます。パラメータはプラグインに固有ですが、あなたに割り当てられた課題をプラグインが抽出できるように、課題管理システムのユーザ名を含めるかも知れません。

TortoiseBlame の設定

図 5.66. 設定ダイアログ、TortoiseBlame ページ

設定ダイアログ、TortoiseBlame ページ


TortoiseBlame で使用する設定は、メインのコンテキストメニューから制御できますが、TortoiseBlame 自体では直接できません。

TortoiseBlame は、ファイルにある行の歴史を背景色で表現できます。ここでは、最新と最古の色を指定して両端を設定でき、TortoiseBlame はこの 2 色を補間して、行ごとのリポジトリのリビジョンを表現します。

フォント

ここでは、テキストを表示するフォントとポイントサイズを指定できます。ここで指定したものを、ファイルの内容と、左ペインに表示する作者とリビジョンの両方に使用します。

タブ

ファイルの内容にタブ文字があった場合、空白を何文字使用して展開するかを定義します。

レジストリの設定

まれに使われる設定は、レジストリを直接編集するしか方法はありません。

設定

レジストリの HKCU\Software\TortoiseSVN\ConfigDir を使用して、Subversion 設定ファイルの場所を異なる場所に指定できます。これは TortoiseSVN のすべての動作に影響を与えます。

キャッシュトレイアイコン

TSVNCache プログラムのキャッシュトレイアイコンを追加するため、HKCU\Software\TortoiseSVN\CacheTrayIconDWORD キーを値 1 で作成してください。これによりプログラムを作法に則って終了させます。そのため実際には開発者のみに有用です。

自動補完リストのファイル名からの拡張子省略

コミットメッセージエディタの自動補完リストには、コミットするファイル名が表示されます。この名前から拡張子を除くには、HKCU\Software\TortoiseSVN\AutocompleteRemovesExtensionsDWORD のキーを作成し、値を 1 としてください。

常にエクスプローラの列を表示

Windows エクスプローラの詳細ビューに表示する、TortoiseSVN が追加する列は、通常、作業コピーのみに有効です。作業コピーのみではなく、どこでもこの列を表示するには、HKCU\Software\TortoiseSVN\ColumnsEveryWhereDWORD キーを作成し、値を 1 としてください。

マージログの区切り

別のブランチから、あるリビジョンをマージした際、マージ追跡情報が有効だと、そのリビジョン由来のログメッセージをまとめて、コミットログメッセージにします。変更するには、HKCU\Software\TortoiseSVN\MergeLogSeparatorSZ キーを作成し、お好みの文字列を設定してください。

変更の注釈履歴に常時 TortoiseMerge を使用

TortoiseSVN は外部 diff ビューアを使用できます。しかし、ほとんどのそのようなビューアは注釈履歴 (注釈履歴の差分項) には対応していません。そのため、このような場合に TortoiseMerge にフォールバックしたくなるかと思います。それには、HKCU\Software\TortoiseSVN\DiffBlamesWithTortoiseMergeDWORD キーを作成し、値を 1 としてください。

Subversion の作業フォルダ

web プロジェクトを使用する際、Subversion が内部情報を格納する .svn フォルダを、VS.NET 2003 は扱えません。これは Subversion のバグではありません。VS.NET 2003 とそこで使用する frontpage 拡張のバグです。

Subversion の 1.3.0 と TortoiseSVN では、環境変数 SVN_ASP_DOT_NET_HACK を設定できます。この環境変数が設定されていると、Subversion は .svn フォルダではなく _svn フォルダを使用します。環境変数が効果を現すにはシェルを再起動しなければなりません。通常 PC を再起動することを意味します。簡単にできるように、設定ダイアログの一般ページにあるチェックボックスで設定できます。一般設定項 をご覧ください。

詳細情報や、その他のこの問題を避ける第一の方法については、私たちの FAQ で関係する記事を調べてください。