本書の執筆時点では、フリーソフトウェアの世界で最もよく使われているバージョン管理システムはConcurrent Versions System(CVS)とSubversion(SVN)の2つです。
CVSには長い歴史があります。ベテランの開発者はすでにCVSはよくご存知でしょう。これまでにもCVSがいろいろな場面で役に立ってきたはずです。CVSの時代があまりにも長く続いてきたので、本当にそれが最適な選択肢だったのかどうかなんて聞くだけやぼでしょう。
しかし、CVSには欠点もあります。まず、複数のファイルを一括して変更したときに、それを追いかける簡単な手段がありません。また、バージョン管理下にあるファイルの名前を変えたりコピーしたりできません(プロジェクトをいったん開始した後でコードツリーの構成を変更したい場合は、泣きながら大変な作業をこなすことになるでしょう)。そして、マージ機能はかなりお粗末なものです。巨大なファイルやバイナリファイルの扱いも不得意です。そして、大量のファイルを一括して操作しようとすると非常に時間が掛かることがあります。
CVSのこれらの欠点は決して致命的なものではありませんが、無視できるものでもありません。ここ数年、新たに立ち上げられたプロジェクトではSubversionを採用することが多くなってきました*1。これから新たにプロジェクトを立ち上げるのなら、Subversionをお勧めします。
一方、わたしがSubversionプロジェクトにかかわっていることもあり、わたしの意見の客観性に疑問を持たれる方もいるかもしれません。ここ数年、新たなオープンソースのバージョン管理システムが幾つか登場しています。付録 A. フリーなバージョン管理システムに、わたしが知っているものを挙げておきます。
このリストを見ても分かるように、どのバージョン管理システムを採用するかを決めるには、下手をすると一生掛かってしまうかもしれません。もしかしたら、あなたには選択の余地がないかもしれません。というのは、ホスティングサイトを使用する場合はホスティングサイト側でバージョン管理システムが設定されているかもしれないからです。もしあなたが自分で選択しなければならない立場になったのなら、まず周りの意見をよく聞いてからどれか1つを選択し、そして動かしてみましょう。最近のバージョン管理システムは、どれもそれなりに機能します。どれを選んだとしても、致命的な被害を受けることはないでしょう。もしまだ迷っているのなら、Subversionを使ってみましょう。これは簡単に習得でき、少なくとも今後数年は標準的に使われることでしょう。
[1] その証拠としてはVersion Control Systemsやsubversion:Security Space Survey of Public Subversion DAV Serverがあります。
製作著作 © 2005, 2006, 2007, 2008, 2009 Karl Fogel, 高木正弘, Yoshinari Takaoka(a.k.a mumumu), under a CreativeCommons Attribution-ShareAlike (表示・継承) license (3.0, 2.1-jp)
よいフリーソフトウェアを作ることは本質的に価値のある目標です。その方法を模索している読者の皆さんが、本連載「オープンソースソフトウェアの育て方」で何かのヒントを得てくだされば幸いです。
content on this article is licensed under a Creative Commons License.