記載日:2010/11/28
Subversionで推奨されている構造
構造概念
Subversion(SVN)はとても柔軟で汎用的なツールです。 SVNは履歴と差分の管理機能とリソースのコピーやマージといった基本的な機能を提供し、それをどう使用するか(どの様にリソースを管理したいか)については SVN の利用者が自由に決めて運用できる様になっています。ただ、Subversion の前に主流だった CVS の流れを受け トランク/ブランチ/タグ の木構造をベースとしたうえで構造を決めるのが一般的な様です。
下図は Subversion(ソース管理)
で例にあげた構成にたいして トランク/ブランチ/タグ構成を選択した場合の概念で補足したものです。 ここで表される Subversion としての取り決めはリポジトリという単位でリソースを管理するという1点だけです。このリポジトリ内にプロジェクト単位でディレクトリを作成し管理することになります。
複数バージョンを管理するプロジェクトでは、年輪の様にプロジェクトの成果が太く大きくなっていく中で、旧バージョン固有の対応が発生したり、旧バージョンのサポートが終了したり、派生バージョンが登場したりと木構造をとりながら発展していくのが一般的です。この開発当初の基幹部分をトランク(幹)とし、そこから派生するバージョンや旧バージョン
新規開発から機能追加や不具合対応を繰り返しながら最新化を続けるスタイルよりも、複数バージョンのサポートを継続しなければならない場合や、有償版と無償版等の複数バージョンを平行開発する場合等で特に有効です。Subversion は柔軟な作りになっているので運用方法次第で様々な形態のプロジェクトに適用可能です。
個人の開発から大規模なチーム開発まで
Subversion は複数人が1つのファイルに対して同時期に加えた修正の検知(変更衝突検知)と内容の比較、単純なものであれば自動的にマージする機能も備えているため、チームを組んで1つのソフトウェアを開発する様なプロジェクトにも適用できます。特に大規模開発ではソース管理が煩雑になりがちですが、大勢のメンバーが行った全ての開発履歴を一元管理できるため、予期しないトラブルの発生リスクを減らすことができます。
個人で使用する場合も、Subversion が忘れがちなバージョン間の差異や過去の対応内容を管理してくれるので開発に専念することができます。いつでも過去のソースを参照したり、さかのぼったりすることができるので、思い切ったリファクタリングや改良を行うのに一役かってくれます。
Subversion の入手方法
Subversion はオープンソースとして開発されており、無償で使用することができます。Subversion 自体は Apache Subversion(http://subversion.apache.org/) からダウンロードできます。Subversion はサーバーソフトウェアとクライアントソフトウェアの2種類が同胞されており、チームで開発する場合には1ヶ所で Subversion サーバーを立ち上げておき、他からはクライアントソフトウェアを使って Subversionリポジトリ(Subversionによるデータ管理領域)からデータを出し入れすることになります。
Linux や Windows で Subversion を導入するには別途インストールが必要ですが、 Mac OS X であれば Leopard (Version 10.5 ) 以降なら標準でインストールされており、ターミナルを起動すればすぐに使用することができます。試しにターミナルから svn --version
と入力すればバージョン情報が確認できます。
クライアントで GUIツール を使用したい場合、Windows環境なら TortoiseSVN(http://tortoisesvn.tigris.org/) というクライアントソフトが無償で提供されています。 Mac OS X 環境の場合は有償ですが Versions(http://versionsapp.com/) というGUIアプリケーションが販売されています。また、開発環境に Eclipse を使っている場合は Subversive という Eclipse プラグインもあります。