Subversionとは

Apache Subversion(アパッチ・サブバージョン)は、オープンソースのバージョン管理システムです。オープンソースであるため、誰でも無償に使用でき、インターネット上などから簡単に入手することができます。

バージョン管理システムとは、コンピュータ上で作成、編集されるファイルの変更履歴を管理するためのシステムのことです。このシステムにより、古いデータを復旧したり、変更された内容の履歴を調べることができます。

ソフトウェア開発においてソースコードの管理に使用されることが特に多いです。

バージョン管理システムの基本機能

バージョン管理システムには様々な機能が搭載されていますが、最も基本となる機能は、ファイルの作成日時、変更日時、変更点などの履歴を保存することです。

バージョン管理ステムを使用する意義として、ソフトウェア開発におけるソースコードをバージョン管理するケースを例にして考えてみます。

通常、ソフトウェア開発は複数人で行います。大規模なものなら数百人、あるいはそれ以上のプログラマーがソースコードを作成・編集していくことになるでしょう。それらソースコードをファイルサーバーで管理したとします。

複数のプログラマーが複数のソースファイルを各々で編集するため、それぞれのソースファイルの最新の状態が分からなくなったり、同一ファイルに対する変更が競合するなどの問題が生じやすくなり、結果、デグレード(バージョンアップに伴う品質低下)につながってしまいます。

例えば、自分が修正したソースファイルが知らない間に他の人に修正され、上書きされたりすると、修正したはずのバグがまた復活してしまうなどのトラブルを引き起こしてしまうというわけです。

ファイルサーバーの機能では、ファイルのバージョン管理までは一部可能ですが、ソースコードをいつ、誰が、どのように変更したのかの管理まではできません。

バージョン管理システムは、このような問題を解決する仕組みを提供してくれます。

何度も変更を加えたファイルであっても、過去の状態や変更内容を確認したり、変更前の状態を復元することが容易にできるなど、複数人による開発を支援してくれる、ソフトウェア開発には欠かせないツールと言えるでしょう。実際、ほとんどの開発現場で、何らかのバージョン管理システムが導入されています。

また、ソフトウェアのソースコードだけでなく、OS・ミドルウェア等の設定ファイルやワード・エクセルといったドキュメントの管理も行えます。

Apache Subversion

歴史的には広く使われているバージョン管理システムの一つにCVSがありましたが、いくつかの問題点を抱えており、それらを解決すべく開発されたのがSubversionです。

日本国内においてもソフトウェア開発プロジェクトの多くで、ソースコードの管理にSubversionが利用されています。

バージョン管理システムは無償で使えるものから有償なものまで数多く存在しますが、Subversionが最もシェアは高いと言われています。(2015年時点)ただ、それを追うようにGitが急激にシェアを広げており、SubversionとGitのシェア争いが白熱しているのが現状と言えるでしょう。