覚えていますか?Git以前の世界

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

Pexels photo 346885

今やバージョン管理ツールとして圧倒的なシェアを誇る「Git」ですが、Gitが登場する前、プログラムのソースコードはどのように管理されていたのでしょうか。

海外のブログ記事「The World Before Git」で、Git誕生に至るバージョン管理ツールの履歴がまとめられています。

この記事によると、1970年代の初頭、開発者はファイルのコピーを手作業で保存することでバージョン管理をしていました。標準的なやり方はなく、開発者がそれぞれ個人的な方法でバージョンを管理していたのです。

この状況が変わるのは、1972年にベル研究所のMarc J. Rochkind氏が作成した「SCCS」です。SCCSでは、現在のバージョン管理ツールにも継承されている多くのコンセプトが導入され、自動リビジョントラッキングやブランチ、マージなどがサポートされました。ファイルの変更を管理するために、ファイルの完全な複製を保存する代わりに、変更点だけを保存するデルタ・ストレージ技術が採用されていました。

10年後の1982年には「RCS」が発表され、リバース・デルタ方式で効率的なバージョン管理が可能となります。

プログラムが複雑化するにつれ、SCCSとRCSは開発者のニーズを満たすことができなくなり、1986年に「CVS」が登場します。CVSは依然としてバックエンドとしてRCSを使用していますが、マルチファイルのサポートが追加され、クライアントサーバーコラボレーションモデルが導入されます。コードベースが中央サーバーに保存され、異なる場所にいる開発者がアクセスできるようになり、共同作業が容易になったのです。

1990年代にはプロプライエタリなバージョン管理ツールが登場し、さまざまな分野で革新が起こります。Atria Software社のClearCaseは、堅牢なブランチモデルを導入し、One Tree SoftwareのSourceSafeはMicrosoftに買収されます。2000年にはBitKeeperが登場し、プロプライエタリではあったものの、Git誕生のための重要や役割を果たすことになります。

オープンソースのバージョン管理ツールとしてCVSの次に人気を集めたのは、CollabNet社によって作成された「SVN」です。CVSの欠点を克服するために設計されたバージョン管理ツールとして、非常な人気を博し、今でも使われています。SVNではデータの一貫性を保証するアトミックコミットの導入や、ブランチに関するデータ保存方法の刷新などさまざまな新機能が導入されましたが、以前と同じようにデータは集中管理されていました。履歴を見たり、変更をコミットしたり、ブランチを作成したりといった操作は中央サーバーに接続する必要があり、オフラインでは不可能だったのです。

対して、BitKeeperは当時としては斬新な分散型のバージョン管理ツールで、開発者は作業中のプロジェクトの完全なローカルコピーを持つことができ、オープンソースコラボレーションにより適していました。BitKeeperはLinuxカーネルプロジェクトに採用されたものの、オープンソースソフトウェアでないことから、カネーネルコアチームから反発を受け、Linus氏は自ら望んでいなかったものの、独自のツール「Git」を作成することを決定し、2週間で実用できる状態に仕上げます。

元々Linuxカーネル開発のために作られたGitは使い方が難しすぎるという批判はあるものの、多くの開発者に受け入れられ、今や圧倒的な人気を獲得しています。Hacker Newsでもこの記事に関連して、バージョン管理ツール関する議論が行われています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次