TortoiseSVN Logo

TortoiseSVN 1.5 の新機能

詳細は以下に説明します。

TortoiseSVN 1.5 は、これまでのすべての TortoiseSVN リリースのスーパーセットであり、現在の安定版かつ「最良」のリリースと見なされています。1.0.x、1.1.x、1.2.x、1.3.x、または 1.4.x のすべての機能は 1.5 にも含まれていますが、1.5 には以前のリリースには存在しない機能とバグ修正が含まれています。

互換性に関する懸念

旧クライアントと旧サーバーは、1.5 サーバーおよびクライアントと透過的に相互運用できます。もちろん、クライアントとサーバーの両方が最新バージョンでない限り、1.5 の新機能の一部は利用できない場合があります。どの機能がどのバージョンを必要とするかについては、以下の表を参照してください。

新機能最小クライアント最小サーバー最小リポジトリ注記
マージ追跡1.51.51.5
svn:// リポジトリアクセス用の Cyrus SASL サポート任意*、1.5任意*、1.5任意*制限付き、ANONYMOUS および CRAM-MD5 のみがサポートされています

その他のすべての機能はサーバーのバージョンに依存せず、制限なしで使用できます。

より詳細な互換性表については、Subversion リリースノートを参照してください。

ワーキングコピーライブラリに加えられた特定の改善により、ワーキングコピー形式のバージョン番号がインクリメントされました。これは、1.5 より前の Subversion クライアントは、Subversion 1.5 で作成されたワーキングコピーを操作できないことを意味します。同様に、リポジトリ形式も変更され、通常リポジトリに直接アクセスする 1.5 より前の Subversion ツール (例: svnservemod_dav_svnsvnadmin) は、Subversion 1.5 で最初に作成されたリポジトリを読み取ることができません。

警告: Subversion 1.5 クライアントが 1.5 より前のワーキングコピーを検出した場合、それに触れるとすぐにワーキングコピー形式を自動的にアップグレードし、古い Subversion クライアントでは読み取り不能になります。マシンで複数のバージョンの Subversion を使用している場合は、どのワーキングコピーでどのバージョンを使用するかについて注意して、ワーキングコピー形式を誤ってアップグレードしないようにする必要があります。ただし、この「自動アップグレード」機能は、新しいリポジトリ形式では発生しません

ワーキングコピー形式の変更に関する Subversion FAQ を参照してください。

マージ追跡

Subversion 1.5.0 のマージ追跡は、機能的には svnmerge.py とほぼ同等であり、マージ履歴を記録および使用して、反復マージ問題の一般的なケースを回避し、変更のチェリーピックを可能にします。プロパティを介してマージ履歴を公開し、リポジトリのダンプ/ロード (マージ履歴インデックスの再作成機能を含む) を可能にします。

注: 一部のマージ追跡機能は、1.5.x より前のサーバーによって提供されるリポジトリでは使用できません。

反復マージ

ブランチで作業している場合、Subversion はマージされる各リビジョンを追跡するようになりました。これにより、例えばトランクからの変更のマージが容易になります。なぜなら、同じリビジョンを 2 回マージするリスクなしに、常にリビジョン範囲全体をマージすることが可能になるからです。Subversion は、マージを実行するときに、すでにマージされたリビジョンを自動的に省略します。

Log dialog showing already merged entries grayed out

マージするリビジョンを見つけるためにマージダイアログからログを表示するとき、TortoiseSVN はすでにマージされたリビジョンを視覚的なヒントとしてグレー表示します。グレー表示されたリビジョンが選択された場合、Subversion はそのリビジョンを再度マージしません。なぜなら、それはすでにマージされているからです。

手動マージの記録

リビジョンがマージされないようにブロックするために、TortoiseSVN は「記録のみ」という名前のマージダイアログにボタンを提供します。これは、マージ自体を実行せずに、リビジョンがすでにマージされていることを Subversion に伝えます。

マージ情報

ログダイアログでリビジョンを検査する場合、マージが発生したリビジョンのメッセージは通常あまり役に立ちません。ほとんどの人は、「/branches/ZZZ からリビジョン XXX から YYY をマージしました」のような形式でログメッセージを記述します。しかし、フォルダ/ファイルのログを調べるときに本当に興味深いのは、マージされたすべてのリビジョンのログメッセージでしょう。

Log dialog showing entries
    without merge history

TortoiseSVN は、必要に応じてそれらのログメッセージを表示できます。ログダイアログにはチェックボックスがあり、アクティブにすると、マージされたリビジョンのすべてのログメッセージをフェッチします。マージされたリビジョンのログエントリは少しインデントされて表示されます。

Log dialog showing entries
    with merge history

スパースチェックアウト

多くのユーザーは、非常に大きなツリーを持っており、その一部のみをチェックアウトしたいと考えています。多数のサブフォルダを持つフォルダの場合、一部のサブフォルダは必要ない場合があります。

TortoiseSVN は、チェックアウトの深さを選択するためのコンボボックスをユーザーに提供します。

  • 完全再帰
  • フォルダを含む直接の子
  • ファイルの子のみ
  • このアイテムのみ

チェックアウトの深さは記憶されるため、後で更新を実行すると、その深さが尊重され、すべてを再度フェッチすることはありません。

svnserve の Cyrus SASL サポート

Subversion 1.5 では、svnserve は認証とデータ暗号化に SASL (Simple Authentication and Security Layer) を使用できます。TortoiseSVN にも SASL が実装されています。TortoiseSVN 1.5 で利用可能な SASL 認証方法は次のとおりです。

  • ANONYMOUS
  • CRAM-MD5
  • PLAIN
  • DIGEST-MD5
  • LOGIN
  • NTLM

SASL は、これらの方法の一部でデータ暗号化も提供するため、インターネット経由で送信中にデータを保護できます。SASL を使用した接続の保護は、SSH インフラストラクチャの設定よりも簡単であるはずです。

チェンジリストのサポート

ワーキングコピーで一度に複数の異なる問題に取り組んでいる場合、どのファイルがどの変更に関係しているかを追跡するのが困難になることがあります。TortoiseSVN は、ファイルを論理的なチェンジリストにグループ化できるようになりました。これらは、コミットダイアログと変更の確認ダイアログに表示されます。視覚的な表示を提供するだけでなく、コミットするグループを選択することもできます。

Commit dialog showing changelists
    grouped together

TortoiseSVN は、ignore-on-commit という名前の特別なチェンジリストも提供します。そのチェンジリストに属するファイルは、コミットダイアログで選択されません。これは、バージョン管理する必要があるが、変更をコミットしたくないファイルがある場合に役立ちます。

ログキャッシュ

リポジトリからログ情報をフェッチするには、特に数千のリビジョンを持つリポジトリや、リポジトリが高速接続上にない場合は、長い時間がかかることがあります。

TortoiseSVN 1.5 は、ログエントリをローカルドライブにキャッシュできます。ローカルキャッシュにまだないエントリのみがリポジトリからフェッチされます。

ログキャッシュは、ログダイアログだけでなく、リビジョングラフのパフォーマンスも向上させます。

リポジトリブラウザ

リポジトリブラウザは完全に書き直され、Windows エクスプローラーに似るようになりました。左側にツリービュー、右側にファイル/フォルダリストを備えた 2 つのペインがあります。

Repository Browser

書き換えの一部には、非常に大きなディレクトリを表示するときのパフォーマンスの改善も含まれています。

また、リポジトリブラウザからエクスプローラーにファイル/フォルダを直接ドラッグして、これらのファイル/フォルダをすばやく保存/エクスポートすることもできます。

リビジョングラフ

リビジョングラフは、以前のリリースから大幅に変更されました。利用可能な場合はログキャッシュを使用することに加えて、ログデータを分析するときにもはるかに高速になりました。

グラフの右上にある小さなウィンドウに、グラフ全体の概要が表示されます。

新しいリビジョングラフには、出力を調整するためのより多くのオプションがあります。たとえば、グラフの方向、グラフ内のノードの配置方法、または完全に除外する必要があるノード/パス/ URL などです。

クライアントサイドフックスクリプト

TortoiseSVN では、特定の操作の前後にクライアントサイドスクリプトの実行を許可しています。利用可能なフックは次のとおりです。

コミット開始フック
コミットダイアログが表示される前に呼び出されます
コミット前フック
コミットダイアログが表示された後、実際のコミット前に呼び出されます
コミット後フック
コミットが完了した後に呼び出されます
更新開始フック
リポジトリに接続する前の更新前に呼び出されます
更新前フック
更新前、ただし更新が完了したリビジョンがわかった後に呼び出されます
更新後フック
更新が完了した後に呼び出されます

TortoiseMerge

改行
MAC 改行を含む、一貫性のない改行が適切に処理されます
アンドゥ
コンフリクト解決中に行われた変更は、1 つずつ元に戻すことができます
編集
ターゲットファイルは、テキストエディタを使用しなくても、TortoiseMerge で直接編集できます

SubWCRev

SubWCRev ツールには、スクリプト言語から簡単にアクセスできる COM インターフェースが追加されました。これにより、例えば Microsoft Word ドキュメントにリビジョン情報を埋め込むことが可能になります。

オーバーレイアイコン

TortoiseCVS などの他の Tortoise クライアントを使用している場合、Windows のオーバーレイ スロットの制限に関する問題をご存知かもしれません。TortoiseSVN と TortoiseCVS の両方がインストールされている場合、一部のオーバーレイは表示されなくなります。これは、Windows にはオーバーレイに使用できるスロットが約 12 個しかなく、両方のアプリケーションがインストールされている場合、その制限が使い果たされるためです。

この問題を解決するために、すべての Tortoise クライアントで使用できる共通のオーバーレイハンドラーを実装しました。このハンドラーを使用すると、すべての Tortoise クライアントが同じオーバーレイアイコンを表示し、同じオーバーレイ スロットを使用します。これにより、Windows の制限に以前ほど簡単に達することはなくなります。

TortoiseSVN 1.5.x および TortoiseCVS の不安定版は、すでにこの新しいオーバーレイハンドラーを使用しています。

オーバーレイを共有するこの新しいオーバーレイハンドラーにより、TortoiseSVN は 2 つの新しいオーバーレイを取得しました。バージョン管理されていないファイルと無視されたファイルにもオーバーレイが追加されました。

Icon Overlays