TortoiseSVN 1.2 の新機能
- オプションのロック機能(「予約チェックアウト」)
- 新しく大幅に改善されたオーバーレイキャッシュ
- TortoiseCVS と共存する場合のオーバーレイのより良い利用
- 多くの改善されたダイアログ
- 多数のバグ修正
- 新しい Subversion 1.2 の機能をすべて実装
- SVN 1.2 に対してリンク
互換性に関する懸念
TortoiseSVN 1.2 は 1.0 および 1.1 サーバーと互換性があります。もちろん、サーバーが最新バージョンにアップグレードされない限り、新しい 1.2 機能の一部は利用できない場合があります。
file://
アクセスを使用して BDB リポジトリにアクセスする場合、そのリポジトリを BDB 4.3 形式に更新する必要があります。その方法の手順は、Subversion FAQ ページにあります。
Subversion 1.2 では、xdelta 差分と呼ばれる代替履歴ストレージメカニズムが導入されました。新しい形式で保存されたリポジトリから古いデータを再構築する方がはるかに高速になり、blame、checkout、diff、merge などの操作が大幅に高速化されます。リポジトリの変換は必須ではありませんが、アクセスを高速化するために変換することをお勧めします。そのためには、コマンドライン svnadmin ツールを使用してダンプ/ロードサイクルを実行する必要があります。その方法の手順については、Subversion マニュアルをご覧ください。
Windows 98/Me および Windows NT 4.0 オペレーティングシステムは、TortoiseSVN 1.2 ではサポートされなくなりました。これは私たちが非友好的になりたいからではなく、これらの古い OS バージョンには回避しなければならない互換性の問題が多すぎるためであり、開発者の誰もこれらのシステムを使用していないため、適切にテストおよびデバッグすることが不可能です。これらのシステムで TortoiseSVN を使用したい場合は、ダウンロードページから引き続き入手できる 1.1.x ラインを使用する必要があります。
新機能
ファイルロック(サーバーの更新も必要)
「ロック」は、他のシステムでは「予約チェックアウト」として知られている、長らく要望されていた機能です。Subversion は依然として主に コピー-修正-マージ システムであり、並行開発に重点を置いていますが、すべてのファイルが簡単にマージできるわけではないという認識が広まっています。特に、アートワーク、圧縮ファイル、独自のバイナリ形式、またはその他の行ベースではないデータなどのバイナリファイルです。
新しいロック機能の目的は 2 つあります。1 つ目は、ファイルへのシリアル化された書き込みアクセスを強制する手段を提供することです。2 つ目は、ユーザーが無駄な変更に時間を費やすのを防ぐためのコミュニケーションメカニズムを提供することです。
最初の目的は、ファイルロックを使用して達成されます。TortoiseSVN には、ロックを取得
および ロックを解除
するための新しいコンテキストメニューエントリがあります。ユーザーがファイルをロックすると、他のユーザーはファイルを変更したり、リポジトリから削除したりすることはできません。
ロックは、ファイルをロックした人が休暇に出てロックを解除するのを忘れた場合などに、盗まれたり、解除されたりする可能性もあります。システム管理者は、新しいロックフックを使用して、独自のロックポリシーを設定できます。リポジトリ管理の詳細については、Subversion ドキュメントを参照してください。
2 番目の目標 — ユーザーが無駄な変更に時間を費やすのを防ぐこと — は、新しいプロパティ svn:needs-lock
を介して達成されます。ユーザー(または管理者)は、マージできないファイルにこのプロパティを設定することをお勧めします。このプロパティが存在する場合、ファイルは読み取り専用になります。ただし、ワーキングコピーがファイルのロックトークンを保持している場合は、ファイルは読み取り/書き込み可能になります。TortoiseSVN は、ファイルが読み取り専用状態の場合を示す新しいステータスオーバーレイを使用します。これは、編集する前にロックを取得する必要があることを警告します。
警告: file://
経由でリポジトリにアクセスするユーザーのチームがいる場合、すべての ユーザーが 1.2 クライアントを使用する必要があります。1.2 より前のクライアントは、ロックを認識せずに無視します。
新しい外部ステータスキャッシュ
TortoiseSVN には、下位レベルのフォルダーのオーバーレイの変更をフォルダー階層全体に伝播して、ツリーの奥深くで行った変更を忘れないようにする、再帰的なオーバーレイ機能が常にありました。ただし、以前のリリースでは、この機能はステータス情報の取得に遅延があるため、非常に小さなワーキングコピーでのみ使用可能でした。
リリース 1.2 では、新しい TSVNCache
プログラムがワーキングコピーのステータスのキャッシュを維持するために使用され、この情報へのアクセスが大幅に高速化されました。これにより、ステータスを取得中にエクスプローラーがブロックされるのを防ぐだけでなく、再帰的なオーバーレイも実用的になります。
注: エクスプローラーは、完全な情報が利用可能になる前にページを表示し、必要に応じて更新するため、新しいキャッシュを使用すると応答性が大幅に向上します。これは、すぐに表示されるステータスが再帰的ではない可能性があることを意味しますが、非再帰的なステータスです。ワーキングコピーのサイズによっては、再帰的なステータスがフィルター処理されるまでに 1 ~ 2 秒かかる場合があります。
Subversion は、ファイルのタイムスタンプが変更されてもコンテンツが変更されない場合、常に速度の問題に悩まされてきました。これにより、subversion はファイルが本当に変更されたかどうかを確認するために、ファイルと BASE のバイト単位の比較を実行する必要があります。この新しいリリースでは、クリーンアップ
メニューエントリを使用して、このようなタイムスタンプの不一致を修正できます。WC のチェックが遅くなった場合は、クリーンアップを実行してみてください。
オーバーレイのより良い利用
Windows は 15 個のアイコンオーバーレイのみをサポートしており、そのうち 3 個を自分で使用しています。TortoiseSVN と TortoiseCVS の両方がインストールされている場合、両方のアプリケーションに十分なオーバーレイがありません。
このリリースでは、TortoiseSVN は他のアプリで必要なオーバーレイの数を確認し、全員に十分なオーバーレイがない場合は、必須のオーバーレイのみをインストールします。また、優先オーバーレイが利用できない場合は、代替オーバーレイも表示します。たとえば、追加
オーバーレイが利用できない場合は、代わりに 変更
オーバーレイが使用されます。
機能強化とバグ修正
これは主要な新リリースであり、ほとんどすべてのメインダイアログが、新機能を追加したり、使いやすくするために、何らかの形で改善されています。主なもののいくつかを以下に示します。また、多くのマイナーなバグ修正も行われています。変更の完全なリストについては、ChangeLog を確認してください。
マージダイアログ
マージという難しいテーマを理解しやすく使いやすくするために、大幅に変更されました。リビジョンボックスに正しい番号を入力しようとせずに、リビジョンログダイアログを使用してマージするリビジョンを選択できるようになりました。
ログダイアログ
新しいフィルターを使用すると、ログメッセージ内を検索したり、日付範囲に制限したりできます。
新しい Subversion 1.2 API を使用すると、特定のリポジトリリビジョンのログメッセージではなく、指定された数のログメッセージを取得できます。これにより、有用な数のメッセージを表示したり、必要に応じてより多くのメッセージを取得したりすることがはるかに簡単になります。
注 - この機能は Subversion 1.2 サーバーで最適に機能します。以前のサーバーでも機能しますが、遅くなります。サーバーは新しいパラメータを理解せず、すべてのログメッセージを返し、Subversion クライアントがそれをフィルタリングします。これにより、応答が非常に遅くなります。TortoiseSVN には、古いサーバーで作業する必要がある場合に古い API を使用できる設定があります。
フォルダーの 2 つのリビジョンを比較できるようになりました。TortoiseSVN は、変更されたファイルのリストを表示し、それぞれを個別に差分表示できます。
ログダイアログの 3 つのペインを個別にサイズ変更できるようになりました。
ログダイアログには、その他多くの新しいコンテキストメニューがあり、より多くの操作を実行できます。
コミットダイアログ
オートコンプリートは、正規表現を使用して、言語に依存するキーワード(通常はクラス/メソッド/変数名)をピックアップするようになりました。
バグ追跡統合は、正規表現を使用して拡張され、問題 ID を簡単にピックアップできるようになりました。詳細については、Issue Tracker Integration Spec をお読みください。
コメント履歴は、既存のメッセージの先頭ではなく、現在のカーソル位置に挿入されるようになりました。
リポジトリブラウザ
いくつかの新しいコンテキストメニューエントリ。ブラウザから直接エクスポートまたはチェックアウトできます。
Windows ファイル関連付け、または選択したプログラムを使用してファイルを開きます。
クリーンアップ
Subversion 1.2 では、クリーンアップコマンドに機能が追加され、より多くの修復を実行できるようになりました。ワーキングコピーファイルのタイムスタンプが Subversion の記録されたタイムスタンプと一致しないが、ファイル長は一致する場合、Subversion はファイルが本当に異なるかどうかを確認するためにバイト単位のチェックを実行します。これにより、ステータスチェックが遅くなる可能性があります。
クリーンアップ
はこれらのファイルをチェックし、コンテンツが一致する場合は、今後のチェックが高速になるようにタイムスタンプの記録をリセットします。ワーキングコピーが 変更の確認
および コミット
ダイアログのファイルリストの生成に非常に時間がかかる場合は、ワーキングコピーで クリーンアップ
を実行してみてください。コミットタイムスタンプを使用する
オプションを使用した場合は、必ずこれを行う必要があります。
設定ダイアログ
設定ダイアログは、混雑が少なく使いやすくなった更新されたインターフェースを備えています。オプションもより論理的な方法でグループ化されているため、探している場所がわかります。
TortoiseMerge
ファイル差分を表示するときに、大文字と小文字の違いを無視することを選択できます。これは、IDE によって変更されることがある VB ソースに役立ちます。