バージョン管理システムの一覧

バージョン管理システムの主なソフトウェア



バージョン管理システムは、ソフトウェア開発において、ソースコードやその他のファイルの変更履歴を管理するための重要なツールです。開発者は、バージョン管理システムを利用することで、変更の追跡、過去のバージョンへの復元、複数人での同時作業などを効率的に行うことができます。ここでは、バージョン管理システムの主なソフトウェアを、そのアーキテクチャに基づいて3つのカテゴリに分類し、それぞれの特徴と代表的なソフトウェアを紹介します。

ローカルデータモデル



ローカルデータモデルは、最もシンプルなバージョン管理のアプローチです。このモデルでは、すべての開発者が同じファイルシステムを使用し、ローカル環境で直接ファイルを操作します。そのため、チーム全体で同一の環境が必要になり、共有が難しくなることがあります。

オープンソース

Revision Control System (RCS): RCSは、最新バージョンと過去の変更差分を格納するバージョン管理システムです。C言語で実装されており、トランクチップへのアクセスが高速である一方で、ブランチチップへのアクセスや包含・除外された差分のサポートには欠けています。比較的古いシステムですが、そのシンプルさからいまだに利用されています。
Source Code Control System (SCCS): UNIXの一部として開発されたSCCSは、RCS以前の主要なバージョン管理システムです。インターリーブデルタに基づいてバージョンを構築し、任意バージョンの抽出時間を均一にするため、複数の同時バージョンとマージが多い環境で有効です。

クライアント/サーバーモデル



クライアント/サーバーモデルでは、開発者は共有の単一リポジトリに接続し、そこでファイルの変更を行います。このモデルは、チームでの共同作業を円滑にし、変更の集中管理を可能にします。

オープンソース

Concurrent Versions System (CVS): CVSは、RCSを基に構築されたオープンソースのバージョン管理システムです。GPLライセンスで提供され、C言語で実装されています。多数の開発者による同時作業をサポートする機能がありますが、ブランチやマージの処理が複雑になることがあります。
CVSNT: CVSのクロスプラットフォーム版で、大文字と小文字を区別しないファイル名に対応するなど、CVSの機能が拡張されています。
OpenCVS: セキュリティとソースコードの正確性を重視したBSDライセンスのCVSクローンです。
Subversion (SVN): CVSに影響を受けて開発されたバージョン管理システムで、C言語で実装されています。CVSの課題を改善し、アトミックコミットやメタデータのバージョン管理などの機能を追加しています。
Vesta: バージョニングファイルシステムと分散リポジトリをサポートするビルドシステムです。

プロプライエタリ

AccuRev: 「ストリーム」に基づいた並列およびグローバル開発を効率的に管理する構成管理ツールです。問題追跡機能が統合されており、レプリケーションサーバーも利用可能です。
Alienbrain: デジタルアセット管理システムで、バージョン管理に加え、構成管理やステータス管理の機能も提供します。特にバイナリデータやCGデータの管理に強みを持っています。
Autodesk Vault: AutoCADやAutodesk Inventorなどの設計ファイルの複雑な関係を管理するために設計されたバージョン管理ツールです。
CADES: International Computers Limitedが開発した、デザイナー向けの生産性向上とバージョン管理システムです。
Dimensions CM: Micro Focusが開発したソフトウェア変更および構成管理システムで、リビジョン管理機能を含んでいます。
Helix Core (旧 Perforce Helix): 大規模な開発環境向けのバージョン管理システムです。
IBM Configuration Management Version Control (CMVC): IBMが提供していたバージョン管理システムで、現在は提供を終了しています。
IBM Rational ClearCase: IBM Rational SoftwareによるSCC準拠の構成管理システムです。
IBM Rational Synergy: IBM独自のSCC準拠の統合変更管理およびタスクベースの構成管理システムです。
IBM Rational Team Concert: IBM Rational Softwareによるコラボレーションおよびアプリケーションライフサイクル管理プラットフォームです。
IC Manage Global Design Platform (GDP): IC設計およびPerforceインフラストラクチャをサポートする設計データ管理システムです。
Perforce Helix: 集中型のバージョン管理システムですが、2015.1以降分散型にも対応しています。ロック方式を採用し、マージ機能も備えています。
Panvalet: 1970年代からIBMメインフレームコンピュータで使用されてきた、ソースおよびオブジェクト制御のためのシステムです。
PTC Integrity (旧 MKS Integrity): PTCが提供する統合的なソフトウェア開発プラットフォームです。
PVCS (旧 Polytron Version Control System): Don Kinzerによって1985年に開発され、現在はMicro Focusが所有するバージョン管理システムです。
Quma Version Control System: 企業向けのバージョン管理システムです。
Razor (構成管理): Visible Systemsの統合スイートに含まれる構成管理ツールです。
SOS: Cliosoft社が開発した、半導体設計を対象とした集中型バージョン管理システムです。
StarTeam: Micro Focus (旧Borland) が提供する、ソフトウェア配信プロセスの調整・管理、デジタル資産と活動の集中管理ツールです。
Surrounding SCM: Seapine Softwareが提供するバージョン管理ツールです。
TeamCity: JetBrainsが開発した、Javaベースのビルド管理と継続的インテグレーションサーバーです。
Vault: SourceGearが提供するバージョン管理ツールで、最初のインストールは無料で利用可能です。
Visual SourceSafe: Microsoftが開発したバージョン管理ツールで、小規模チーム向けに設計されています。

分散モデル



分散モデルでは、各開発者が独自のローカルリポジトリを持ち、変更を個別のステップとしてリポジトリ間で共有します。このモデルは、オフラインでの作業を可能にし、柔軟なワークフローをサポートします。

オープンソース

ArX: Walter Landryが実装し、GNU archから派生して完全に書き直されたバージョン管理システムです。
Bazaar: Pythonで実装されたバージョン管理システムで、高速性と使いやすさを追求しています。Archアーカイブのロスレスインポートが可能です。
BitKeeper: Linuxカーネル開発で使用されて有名になった分散型バージョン管理システムですが、契約違反によりライセンスが取り消されました。2016年にオープンソース化されています。
Codeville: Pythonで書かれた分散型バージョン管理システムで、革新的なマージアルゴリズムを使用しています。
Darcs: Haskellで書かれたバージョン管理システムで、パッチ間の依存関係を追跡し、パッチの理論を用いて自動的に再配置やチェリーピックが可能です。
DCVS: 分散型かつCVSベースのバージョン管理システムです。
Fossil: SQLite開発者によって実装された分散型リビジョン管理システムで、Wiki、バグ追跡、フォーラムなどの機能を備えたオールインワンソリューションです。
Git: Linuxカーネルプロジェクトからリーナス・トーバルズによって設計された、分散型バージョン管理システムです。高速、柔軟性、堅牢性に優れています。
GNU arch: C言語シェルスクリプトで実装された、分散型バージョン管理システムです。
Mercurial: BitKeeperのオープンソース版としてPythonで実装された、分散型バージョン管理システムです。高速、軽量、ポータブルで使いやすいことが特徴です。
Monotone: Monotoneチームによって開発された分散型バージョン管理システムで、ピアツーピア方式を採用しています。

プロプライエタリ

Code Co-op: ピアツーピア方式のバージョン管理システムで、同期に電子メールを使用できます。
Sun WorkShop TeamWare: BitKeeperの開発者ラリー・マクボイによって設計されたバージョン管理システムです。
Plastic SCM: Codice Software, Inc.が開発したバージョン管理システムです。
Visual Studio Team Services: Microsoftが提供する、チームがコードを共有し、作業を追跡し、ソフトウェアをリリースするためのサービスです。

関連項目



バージョン管理システム
ソースコードホスティング機能の比較

脚注



[外部リンク]

Configuration Management Tools - Curlie

この一覧は、バージョン管理システムの多様性を示しています。プロジェクトの規模、チームの構成、必要な機能に応じて適切なバージョン管理システムを選択することが重要です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。