オープンソースのバージョンコントロールシステム Apache Subversion(SVN)1.8 が6月18日リリースされた。この最新版は、およそ20か月前にリリースされた SVN 1.7 の後継バージョンであり、開発者に対して多くの新機能を提供するものだ。

バージョン管理システム Subversion にバージョン1.8 登場 ― なぜ Git ではなく、SVN を使うのか?
SVN 1.8 はまた、「なぜ Git ではなく、SVN を使うのか?」という疑問への回答を与えてくれるリリースとなっている。

WC-NG

前バージョン SVN 1.7 の最大の目玉は、WC-NG(working copy next generation)の導入だった。WC-NG は、SVN 1.8 および今後のリリースで提供される新機能のベースとなっている。Apache Software Foundation の元議長であり、Apache Subversion プロジェクトの VP である Greg Stein 氏は、InternetNews.com に対し、次のように語った。

「SVN 1.8 では、WC-NG の機能が拡張されたわけではない。だがそのコードからは無駄が排除され、合理化されている。これにより、パフォーマンスと堅牢性が向上した」

Git vs. SVN

ここ数年、バージョンコントロールとしては Git の人気が高まっている。Git と SVN を比較する際に焦点となるのは、「フォーク」と「マージ」だろう。Stein 氏は、SVN 1.8 では、マージ機能のシンプル化に多くの労力を費やしたと述べた。

Stein 氏はまた、SVN 1.8 はツリ―コンフリクト処理機能が向上していると付け加えた。

「Git は、ファイルしか見ておらず、ファイルの移動を追跡はできない。推測はするが、ディレクトリストラクチャを本当に追跡しているわけではない。Git の推測はかなり精度は高いが、組織的なソフトウェア開発を実施したい場合、推測はあまり良い考えとはいえない」

SVN 1.8 リリースでは、SVN プロジェクトはこれまでの BerkelyDB NoSQL データベースではなく、フラットファイルリポジトリ格納バックエンド(FSFS)を採用する。Stein 氏は、FSFS は Subversion のワークロードにあわせて最適化されており、一台のサーバーで、大量のリポジトリを扱えると述べた。

「我々には、NoSQL によるスケールアウト機能は必要ない。我々は、1つのリポジトリが巨大過ぎて、SVN では扱えなくなったという話をまだ聞いたことがない」

FSFS の採用も SVN と Git の相違点となるだろう。Git リポジトリでは、サイズ制限があるのが普通だ。Git のリポジトリがサイズ制限される理由は、企業の開発者が200GB のリポジトリを LAN 経由でデスクトップにミラーリングすることを、システム管理者が望まないためだ。

「SVN では 1TB のリポジトリを持つことができ、その中の一部分だけをチェックアウトできる。開発者は、すべてのコピーを持つ必要はない。Git では通常、多くの小さなリポジトリを持つことになるが、SVN では、1つのリポジトリで済んでしまう。これは、管理やバックアップを容易にする」

Stash

SVN 1.8 は Git にない機能を持っているが、その逆もある。その1つが git stash コマンドだ。これは現在の作業状況を、コミットせず、一時的に保存しておくことができるものだ。Stein 氏は次のように説明する。

「WC-NG は、潜在的には Stash と同じ機能を実現できる。我々は、それを実現する時間を持った誰かが登場するのを待っている」

SVN プロジェクトは、オフラインコミットの実装に向けても取り組んでいる。これも Git では可能な機能だ。Stein 氏によれば、SVN プロジェクトでは「checkpoints」と呼ばれる同様の機能に取り組んでいるという。この機能のベースとなるのも、WC-NG だ。

SVN 1.9


SVN の次期バージョン、1.9 リリースに向けた SVN プロジェクトの最大のテーマは、どうやってリリースサイクルを短縮できるか、というものだ。

「我々は、リリースタイムフレームの見直しを実施している。SVN 1.8 から1.9 の間には、20か月も空いてしまった。我々は、これを9か月に短縮したい」

Sean Michael Kerner
Sean Michael Kerner は、InternetNews.com の主任編集者。