Revision Control System (RCS) Kurzinfo

Einführung

Das Revision Control System (RCS) dient zur Verwaltung mehrerer Versionen von Dateien. Es wird eine Log-Datei geführt, die Versionsnummer wird automatisch inkrementiert, es gibt Datei-Locking, Textänderungen zwischen verschiedenen Versionen können angezeigt werden.

Es ist damit sehr nützlich bei der Entwicklung von Programmen, Dokumentationen und Veröffentlichungen, insbesondere auch dann, wenn mehrere Autoren daran beteiligt sind.

Wichtigste Kommandos

ci
"check in": Archivierung einer Datei
ci -u myfile
co
"check out": holt eine Revision der Datei aus dem Archiv (normalerweise die letzte)
co -l myfile

Wie beginnt man?

  1. mkdir ./RCS

    Man legt ein Unterverzeichnis für das RCS-Archiv an.

  2. Es empfiehlt sich, eine Kommentarzeile mit einer Id-Markierung ($Id$) in den Kopf der Datei einzufügen, z.B.:

    static char rcsid[] = "$Id$";
    <!-- $Id$ -->

  3. ci myfile

    Damit wird die Datei im RCS-Archiv abgelegt, die ursprüngliche Datei wird gelöscht. Es wird nach einer Kurzbeschreibung gefragt, die in die Log-Datei eingetragen wird.

  4. co myfile

    Holt eine Arbeitskopie (letzte Revision) der Datei aus dem Archiv. Diese Arbeitskopie darf zunächst nur zum Lesen benutzt werden.

Editieren von RCS-verwalteten Dateien

Normalerweise führt man die folgenden drei Schritte aus:

  1. co -l myfile

    "check out locked": Eine Arbeitskopie wird geholt, und der Benutzer erhält eine Editier-Erlaubnis.

  2. edit myfile

    Die Datei wird mit einem Editor der Wahl ("edit": vi, emacs, pico, nedit, point ...) editiert.

  3. ci -u myfile

    "check in unlocked": Die neue Version wird archiviert, der Lock entfernt. In die Log-Datei sollte eine Kurzbeschreibung der Änderungen eingetragen werden.

Änderungen anzeigen lassen

rcsdiff myfile
zeigt Änderungen zwischen der Arbeitsdatei und der zuletzt archivierten Datei an (mittels diff).
rcsdiff -r1.1 -r1.2 myfile
zeigt die Änderungen zwischen den Revisionen 1.1 und 1.2.
co -r1.1 myfile
holt eine bestimmte Revision aus dem Archiv, im Beispiel 1.1.

Spezialfall amd.user

Es gibt Dateien, bei denen der Normalzustand checked-out und locked ist, z.B. "amd.user". Zum Editieren geht man hier folgendermaßen vor:
  1. rcs -l amd.user
  2. ci -l amd.user
  3. edit amd.user
  4. ci -l amd.user

Log-Eintragungen

Analog zur Marke $Id$ gibt es eine Marke $Log$, die man ggf. in eine Kommentarzeile schreiben kann. Es werden dann die Log-Einträge mitprotokolliert.
Burkhard Kirste, 1996-10-18