Manuals

TortoiseSVNの特徴

TortoiseSVNはSubversionクライアントとして、どのような点が優れているのでしょうか?主な特徴は次の通りです。

シェル統合

TortoiseSVNはWindowsのシェル(すなわちエクスプローラー)に統合されています。つまり、すでに使い慣れた方法で操作することができます。そして、バージョン管理の機能が必要になるたびに違うアプリケーションに切り替える必要はありません。

Windowsのエクスプローラーに限らず、TortoiseSVNのコンテキストメニューは、他のファイルマネージャや、「ファイルを開く」ダイアログのような一般のWindowsアプリケーションで共通に使用されているダイアログでも使用することができます。しかし、TortoiseSVNはWindowsエクスプローラーの拡張機能として開発されていることを認識しておいてください。つまり、他のアプリケーションの中では、アイコンオーバーレイが表示されないといったように、統合が不完全になることもあります。

アイコンオーバレイ

バージョン管理されているファイルやフォルダーの状態は、小さなオーバレイアイコンによって表されます。これで作業コピーの状態をすぐに確認することができます。

グラフィカルユーザーインターフェイス(GUI)

あるファイルやフォルダーの変更を一覧する際、リビジョンをクリックすると、それをコミットした際のコメントを読むことができます。また、変更されたファイルの一覧からファイルをダブルクリックするだけで、すぐに変更内容を確認することができます。

コミットダイアログでは、コミットに含まれる可能性のある項目の一覧が表示されます。各項目と共に表示されるチェックボックスで、コミットに含めたいファイルを選択することができます。バージョン管理されていないファイルも一覧に表示されるので、新しいファイルの追加し忘れを防ぐことができます。

Subversionコマンドへの容易なアクセス

エクスプローラーのコンテキストメニューから、すべてのSubversionコマンドを利用できます。TortoiseSVNは独自のサブメニューにそのコマンドを追加します。

TortoiseSVNはSubversionのクライアントであるため、Subversion自体が持つ特徴も紹介します。

ディレクトリのバージョン管理

CVSは個々のファイルの履歴しか追跡できませんが、Subversionでは、時系列でディレクトリツリー全体に行われた変更を追跡する仮想的なバージョン管理ファイルシステムを実装しています。ファイルおよびディレクトリがバージョン管理されます。そのため、クライアント側からファイルやディレクトリを操作するmove(移動)やcopy(コピー)コマンドが実装されています。

不可分コミット

コミットは完全にリポジトリに格納されるか、全くされないかのどちらかになります。これにより、開発者は論理的に一貫した変更を作成し、コミットすることができます。

バージョン管理されたメタデータ

すべてのファイルやディレクトリには、不可視のプロパティが添付されています。任意のキーと値の組み合わせを作成し格納することができます。プロパティはファイルの内容と同様に、時系列でバージョン管理されます。

ネットワークレイヤーの選択

Subversionはリポジトリへのアクセスが抽象化されており、新しいネットワークメカニズムを容易に実装できるようになっています。Subversionの先進的なネットワークサーバーは、Apacheウェブサーバーのモジュールになっており、HTTPの一種であるWebDAV/DeltaVで通信します。これは、Subversionに安定性や相互運用性の面で大きな利点を与え、認証、認可、データ圧縮、リポジトリ閲覧のような、様々な重要な機能を使用することができます。もっと小さいスタンドアロンのSubversionサーバーもあります。このサーバーはsshで簡単にトンネル通信ができる独自プロトコルで通信します。

一貫したデータの取り扱い

Subversionはテキストファイル(人が読める形式)でもバイナリファイル(人が読めない形式)でも、ファイルの差分をバイナリ差分アルゴリズムを用いて表現します。どちらのタイプのファイルでも、リポジトリに圧縮して格納されます。また、差分はネットワークを使って双方向に通信されます。

効率的なブランチやタグの作成

ブランチやタグを作成するときのコストは、プロジェクトの規模に比例しません。Subversionはブランチやタグを作成するのに、ハードリンクによく似た単純なプロジェクトのコピーで行います。そのため、この操作はとても小さいコストであり、一定の時間で完了し、リポジトリのほんの小さな領域しか使用しません。

TortoiseSVN homepage