Source Code Control System

Das Source Code Control System (SCCS) ist eine Software zur Versionsverwaltung von Dateien auf dem Computer. Die erste Version wurde 1972 von Marc J. Rochkind an den Bell Laboratories geschrieben. SCCS ist der POSIX-Standard für Versionsverwaltungssysteme.[1]

## Funktionen

[Bearbeiten | Quelltext bearbeiten]

SCCS dient speziell bei Textdateien wie Quelltexten, Konfigurationsdateien oder Dokumentationen der Verwaltung und Dokumentation der Änderungen. Hierbei legt es für jede geänderte Datei im Unterordner `SCCS/` eine Textdatei namens `s.Name-der-Datei` an, die eine Prüfsumme sowie jede einzelne Änderung in einem diff-ähnlichen Format enthält. Auf diese Weise ist es möglich, jede jemals durchgeführte Änderung an einer einzelnen Datei nachvollziehen zu können. Mit dem 1977 eingeführten Befehl `prt` lässt sich zudem eine Auflistung aller Änderungen anzeigen.

### Revisionen und Branches

[Bearbeiten | Quelltext bearbeiten]

Versionsnummern in SCCS, sogenannte SIDs, bestehen meist aus einer Release\- und einer Level-Nummer. Die erste Version jeder Datei erhält hierbei die SID 1.1. Für jede neue Änderung wird eine neue Revision erzeugt, wodurch standardmäßig nur der Level erhöht wird, also zum Beispiel von Version 1.1 auf Version 1.2. Mittels des Flags `b` in der Versionsdatei werden auch Branches unterstützt, was die SIDs um zwei weitere Stellen ergänzt, nämlich um eine Branch\- und eine Sequenz-Nummer. Das ermöglicht zum Beispiel die Pflege von Korrekturen in einem älteren Versionszweig einer Anwendung.

### SCCSID und Makros

[Bearbeiten | Quelltext bearbeiten]

SCCS kann in geänderten Dateien mittels verschiedener Makros die jeweils aktuelle Revisionsnummer sowie weitere Informationen einfügen. Die Zeile

static char SccsId[] = "%W%\t%G%";

in einer C-Quellcodedatei etwa wird nach Abschluss der Änderungen durch

static char SccsId[] = "@(#)program.c 1.2 08/29/80";

ersetzt. Die automatisch eingefügte Zeichenkette `@(#)` (Makro `%Z%`) dient hierbei der Auffindbarkeit versionierter Dateien. Mittels des Befehls `sccs what` kann dieses Auffinden ebenfalls automatisiert werden.

## Weiterentwicklungen

[Bearbeiten | Quelltext bearbeiten]

In seiner ursprünglichen Version verwaltet SCCS nur einzelne Dateien und kann daher nicht zur einheitlichen Versionierung von ganzen Projekten verwendet werden. Aus diesem und anderen Gründen wurde es ab 1982 von anderen Versionsverwaltungen zusehends häufiger abgelöst.

### RCS

[Bearbeiten | Quelltext bearbeiten]

SCCS ist in seiner Funktionsweise mit dem zehn Jahre später entwickelten Revision Control System (RCS) vergleichbar. Anders als SCCS verfügt RCS jedoch nicht über Prüfsummen und ist somit anfälliger für Dateidefekte. CVS ist eine Weiterentwicklung von RCS, die im Wesentlichen dasselbe Dateiformat verwendet, aber projektbezogenes Arbeiten ermöglicht.

### Spätere Entwicklung

[Bearbeiten | Quelltext bearbeiten]

Von Sun Microsystems wurde ab 1986 ein auf SCCS aufbauendes Projektverwaltungssystem namens Network Software Engineering (NSE) entwickelt. Anfang der 1990er Jahre wurde dies durch TeamWare ersetzt, das immer noch für größere Projekte verwendet wird. Auch das BitKeeper-System basierte ursprünglich auf den Datenstrukturen und den internen Programmierschnittstellen von SCCS[2], ab BitKeeper 5.0 wurde das in jedem Unterverzeichnis angelegte `SCCS/`-Verzeichnis jedoch durch ein projektglobales Verzeichnis namens `.bk/` ersetzt.[3]

## Quellenangaben

[Bearbeiten | Quelltext bearbeiten]

1. ↑ sccs. In: The Open Group Base Specifications Issue 7, 2018 edition. Abgerufen am 17. Januar 2020.
2. ↑ BitSCCS - SCCS compatible revision control system. Abgerufen am 17. Januar 2020.
3. ↑ Release notes for BitKeeper version 5.4.6 (released May 6, 2013). 19. Mai 2015, abgerufen am 17. Januar 2020 (englisch, Abschnitt: Other changes): „SCCS directories are no longer stored each directory in the repository. A new directory at the top level, .bk, stores all BK data.“

## Weblinks

[Bearbeiten | Quelltext bearbeiten]

* Schily SCCS, eine unabhängige Weiterentwicklung von Sun SCCS

Normdaten (Sachbegriff): GND: 4247001-8 (GND Explorer, lobid, OGND, AKS)