Source Code Control System

Source Code Control System(SCCS)は、1972年ベル研究所のマーク・J・ロックキンドによって開発された、世界初のソースコードバージョン管理システムです。当初はIBM System/370上のOS/MVT向けに開発されましたが、後にPDP-11上のUNIXに移植され、初期のUNIXシステムの一部として広く普及しました。SCCSのコマンド仕様は、Single UNIX Specificationの一部にもなっています。

SCCSは、Revision Control System(RCS)が登場するまで、長らく唯一とも言えるバージョン管理システムとして、多くの開発現場で利用されていました。現在では、そのファイル形式はBitKeeperやTeamWareといった、他のバージョン管理システムでも利用されています。また、SablimeなどのツールでもSCCS形式のファイルが扱えます。

SCCSのファイル形式は「interleaved delta」(または「weave」)と呼ばれる技術を採用しています。この技術は、バージョン管理システム開発者にとって、最新のマージ手法を検討する上で重要な鍵として注目されています。例えば、Precise Codevilleのようなシステムがその一例です。

初期のUNIXシステムにおけるSCCS

SCCSは、以下の初期のUNIXシステムに組み込まれていました。

Programmer's Workbench UNIX
UNIX System III
UNIX System V


SCCSの技術的な特徴

SCCSが採用しているinterleaved delta(またはweave)は、ファイルの異なるバージョン間の変更箇所を効率的に格納する方式です。これにより、ストレージの効率化と高速なバージョン復元が可能になります。この技術は、現在でも最新のバージョン管理システムにおけるマージ処理の基礎となる考え方を提供しています。

SCCSの歴史的意義

SCCSは、バージョン管理の概念を広く普及させたという点で、非常に重要な役割を果たしました。現代のGitやSubversionのような高度なバージョン管理システムに比べると機能は限られていましたが、当時の開発環境においては非常に革新的なツールでした。SCCSの登場によって、複数の開発者が同時に同じソースコードを編集する際の競合を避けることや、過去のバージョンへのロールバックが容易になりました。これは、ソフトウェア開発の効率化に大きく貢献しました。

SCCSの現在

SCCSは、現在では新規のプロジェクトで利用されることはほとんどありません。しかし、そのファイル形式は一部のレガシーシステムやツールで利用され続けています。また、SCCSの基本的な考え方や技術は、現代のバージョン管理システムの開発にも影響を与え続けています。GNU CSSCのようなSCCS互換プログラムも存在し、CVSやSubversionといったよりモダンなシステムへの移行を支援しています。

参考文献

M. J. Rochkind: The Source Code Control System. In IEEE Transactions on Software Engineering SE-1:4 (Dec. 1975), pages 364–370.
Greg Hudson: Notes on keeping version histories of files
Cyclic SCCS Page

外部リンク

M. J. Rochkind: I Hear Voices Talking About Me. In Marc's Blog (2005年6月)
GNU CSSC ("Compatibly Stupid Source Control") SCCS互換プログラム。CVSやSubversionといった最近のシステムへの乗り換えを可能にする。
SourceForge での SCCS 関連プロジェクト一覧
Sourceforge Hosted Version
* sccs(1) マニュアル(HP-UX)

もう一度検索

【記事の利用について】

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

【リンクついて】

リンクフリーです。