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