TortoiseSVN の特徴

TortoiseSVN はどのようにすばらしい Subversion クライアントなのでしょうか? 以下は簡単な特徴の一覧です。

シェル統合

TortoiseSVN は Windows シェル (例: エクスプローラ) にシームレスに統合されます。これは、すでによく知っているツールを使い続けられるということです。そして、バージョン管理機能が必要となるたびにちがうアプリケーションに変更する必要はありません!

ですが、Windows エクスプローラを使うよう強制されるわけではありません。TortoiseSVN のコンテキストメニューは、他の多くのファイルマネージャや、ほとんどの標準的なWindowsアプリケーションで共通のファイル/オープンダイアログで動作します。しかし、TortoiseSVN はわざわざ Windows エクスプローラの拡張として開発されていることを覚えておいてください。他のアプリケーションでは完全に統合されているわけではなく、例えばアイコンオーバレイが表示されないといったことがあり得ます。

アイコンオーバレイ

ファイルやフォルダごとにバージョン管理の状態をあらわす小さなオーバレイアイコンを表示します。これで作業コピーの状態をすぐに見ることができます。

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

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

TortoiseSVN は Subversion クライアントですから、Subversion 自体が持つ特徴も以下に述べます。

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

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

不可分コミット

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

バージョン管理のメタデータ

ファイルやディレクトリごとに不可視の 属性 が添付されています。望むまま任意のキー/値を作成・格納できます。属性はファイルの内容のようにずっとバージョン管理されていきます。

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

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

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

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

効果的なブランチ・タグ付け

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

いじりやすさ

Subversion は歴史的なしがらみを持っていません。よく練られた API でできた C の共有ライブラリの集まりで実装されています。これにより、Subversion は非常に保守しやすく、他の言語やアプリケーションから利用しやすくなっています。