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