1.109. Revision Control System

1.109.1. Autodokumentation mit RCS

Das Revision Control System (RCS) dient zur Revisionskontrolle von Files. RCS automatisiert das Speichern, Holen, Dokumentieren, Identifizieren und Zusammenführen von Änderungen (Revisionen). RCS wird vor allem bei Textdateien mit vielen Änderungen gebraucht, z.B. Quellcode, Dokumentation und Konfigurationsdateien.

Dazu wird mit dem Befehl:

# ci filename

eine Datei dem RCS übergeben (ci = check in). Soll die Datei bearbeitet werden, muss sie ausgecheckt werden (co = check out):

# co filename

Alle Änderungen, die an der Datei vorgenommen wurden, werden in der Datei filename,v gespeichert.

1.109.1.1. Die wichtigsten Befehle

Handbuch zu RCS rcs Einführung zu RCS rcsintro check in:

# ci

check out:

# co

Revisionskommentarlog:

# rlog

Revisionslog:

# rcsdiff

1.109.2. Anwendung

Am Beispiel der Startdatei von X ~/.xinitrc werde ich versuchen das Prinzip zu erklären.

In meinem Heimatverzeichnis habe ich mehrere Konfigurationsdateien. Ich erzeuge mit # mkdir ~/RCS darin ein Verzeichnis RCS. Dieses Verzeichnis dient der Ordnung. Alle Dateien, die ich dem RCS übergebe, erhalten eine zugehörige Revisionsdatei. Diese Revisionsdateien werden alle in ./RCS gespeichert, wenn es existiert.

Nun übergebe ich die .xinitrc-Datei mit # ci -u ~/.xinitrc dem RCS. Mit dem Parameter -u sorge ich dafür, dass eine editierbare Kopie im Originialverzeichnis bleibt. RCS fordert mich auch zur Beschreibung der Datei auf, diese kann mehrzeilig sein, abgeschlossen wird sie mit einem Punkt . auf einer einzelnen Zeile.

Will ich die .xinitrc-Datei ändern, so muss ich mit # co -l ~/.xinitrc die Datei auschecken, mit dem Parameter -l sorge ich dafür, dass nur ich die Datei ändern kann (lock).

Nachdem ich mit meinem Lieblingseditor .xinitrc geändert und geschrieben habe, muss ich die Datei wieder einchecken # ci -u ~/.xinitrc RCS fordert mich nun zur Beschreibung meiner Änderungen auf, diese kann mehrzeilig sein, abgeschlossen wird sie mit einem Punkt . auf einer einzelnen Zeile.

Wenn ich die Kommentare zu meinen Änderungen sehen will, zeigt mir # rlog ~/.xinitrc alle Kommentare samt Revisionsnummern an.

Wenn ich meine Änderungen sehen will,zeigt # rcsdiff -r1.1 -r1.2 ~/.xinitrc mir alle Änderungen zwischen den Revisionen an (hier zw. 1.1 und 1.2).

Um eine frühere Revision wiederherzustellen, # co -rx.x ~/.xinitrc wobei x durch die jeweilige Revisionsnummer zu ersetzen ist.

1.109.3. RCS-Variablen

Beispiele:

$Id$ Dateiname, Revisionsnummer, Datum, Zeit, Autor, Status
$Header$ Genau wie $Id$ nur mit voller Pfandangabe
$Log$ Zeigt die letzten Log Meldungen an, die beim check-in abgefragt werden

Mehr unter co.

Möchte man die Uhrzeit in den Variablen auf die lokale Zeit gesetzt haben, so gibt man beim check-in noch -zLT mit an # ci -u -zLT Noch einfacher geht es, wenn man RCSINIT exportiert: # export RCSINIT=-zLT

Diese Variablen kann ich in jede Datei, die ich dem RCS übergebe, schreiben. Das sieht für $Id$ folgendermaßen aus:

$Id: index.html,v 1.10 2005/10/12 13:22:58 simon Exp $

1.109.4. rcsedit

sysutils/rcsedit erleichtert die Arbeit mit RCS. Einfach # rcsedit <Datei> eingeben und die Datei wird ausgecheckt, ein Editor geöffnet und nach dem Schließen des Editors kann man seine Änderungen eingeben.

Zuletzt geändert: 2023-07-22