Subversion 【SVN】
概要
Subversion(SVN)とは、著名なオープンソースのバージョン管理システム(VCS)の一つ。複数の開発者が共同で一つのソフトウェアを開発する際などに、ソースコードやドキュメントを管理するのに用いられる。「CVS」(Concurrent Versions System)を参考に開発され、基本的なコマンドなどはCVSと共通になっている。他のバージョン管理システムとも共通する基本的な機能として、「リポジトリ」(repository)と呼ばれるサーバ上の保管領域でファイルを集中的に管理し、複数の作業者が並行して内容を更新していくことができるようにする。作業者側にリポジトリを置かない集中型バージョン管理システムに分類される。
個々のファイルにいつ誰がどのような変更を行ったかを記録しており、必要に応じて特定の日時の版を参照したり、その状態に戻したりすることができる。また、プロジェクトの時系列を分岐(ブランチ)して派生プロジェクトを作成したり、それを再び元の系列に統合(マージ)したりすることができる。
CVSではできなかったファイル名の変更やディレクトリの移動・削除などが可能になっている。最新版のファイルを作業者の手元にキャッシュとして保存するため、無駄な通信が省かれ高速に同期することができる。SSHを標準でサポートしており、インターネット上でも安全にファイルのやりとりができる。
Subversionの配布パッケージにはクライアント側のソフトウェアとして「svn」というコマンドラインツールが同梱されているが、これ以外にも様々な環境向けにクライアントが開発・公開されている。WindowsやmacOS用のクライアントソフト、Eclipseなどの統合開発環境(IDE)に組み込んで利用できるプラグインなどがある。
最初のバージョンは2000年に米コラボネット(CollabNet)社が開発・公開した。2009年からはアパッチソフトウェア財団(Apache Software Foundation)に移管され、「Apache Subversion」が正式名称となっている。Subversion以降に登場したGitなどはローカル環境にリポジトリの複製を作る分散型バージョン管理システムであるため、Subversionは集中型の代表例としてよく引き合いに出される。