28.1.1.2 サポートされるバージョンコントロールシステム
VCは現在のところ、多くの異なるバージョンコントロールで機能し、それらをバックエンド(back ends)として参照します:
-
SCCSは、これまでに構築された一番最初のバージョンコントロールシステムで、ずっと以前に、もっと進んだものに取って代わられました。SCCSにない特定の機能のためのVCコンポーネントは、それら自身により実装されています。複数ブランチなど、その他のVC機能は単に利用不可です。SCCSはフリーではないので、これを避けることを推奨します。
-
CSSCはSCCSのフリーな置き換えです。何らかの理由により、もっと新しい、より良いデザインのバージョンコントロールシステムを使うことができないときだけ、CSSCを使うべきです。
-
RCSは、VCが最初に構築された頃の、フリーなバージョンコントロールシステムです。これは比較的に初期のものです。これはネットワークを超えて使うことはできず、ファイルに個別のレベルで機能します。RCSでできるほとんどのことは、VCを通じて行うことができます。
-
CVSは、フリーなバージョンコントロールシステムで、最近(2008年ごろ)まではフリーソフトウェアプロジェクトの大半で使われていました。最近では、新しいシステムに徐々に置き換えられています。CVSではローカルまたはネットワーク越しの、複数ユーザーによる並列開発が可能です。新しいシステムとは異なり、アトミックなコミットとファイルの移動・リネームにたいするサポートがありません。VCはCVS下での基本的な編集操作をサポートします。
-
Subversion(svn)は、CVSと同じようにデザインされた、フリーなバージョンコントロールシステムですが、CVSのもつ問題はありません(たとえば、これはファイルセットのアトミックなコミット、ディレクトリーのバージョニング、シンボリックリンク、メタデータ、リネーム、コピー、削除をサポートします)。
-
GNU
Archは、一番古い分散化された(decentralized)バージョンコントロールシステムです(他にMonotoneがあります)。分散化されたバージョンコントロールシステムの説明は、VCS Conceptsを参照してください。Bazaarを優先するために、もはや活発に開発されておらず、推奨されていません。
-
Gitは、最初にLinus
TorvaldsによりLinux(彼のkernel)の開発をサポートするために考案されました。VCは多くのGit操作をサポートしますが、その他のリポジトリーの同期などはコマンドラインを使わなければなりません。
-
Mercurial(hg)は、Gitに酷似した分散化されたバージョンコントロールシステムです。VCは、リポジトリーの同期操作を除いて、ほとんどのMercurialコマンドをサポートします。
-
Bazaar(bzr)は、リポジトリーベースと分散化されたバージョニングの両方をサポートする、分散化されたバージョンコントロールシステムです。VCはBazaar下でのほとんどの基本的な編集操作をサポートします。