Autodokumentation mit RCS

lars

vom mars
Hiermit gebe ich mein Howto unter der BSD Lizenz zur Aufnahme im Wiki frei.
----------------------------------------------------------------------
Beschreibung:
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 v.a. zusammen bei Textfiles mit vielen Änderungen gebraucht,
z.B. Sourcecode, Dokumentation und Konfigurationsdateien.


Dazu wird mit dem Befehl
#ci <filename>
eine Datei dem RCS übergeben (ci=check in).
Will ich das File bearbeiten, muss ich die Datei wieder auschecken (co=check out)
#co <filename>
Alle Änderungen, die ich an der Datei vornehme, werden in der Datei
<filename,v>
gespeichert.

Die wichtigsten Befehle:
man rcs Handbuch zu RCS
man rcsintro Einführung zu RCS
ci check in
co check out
rlog Revisions-Kommentar-Log
rcsdiff Revisions-Log

Anwendung:
Am Beispiel der X-Startdatei
/home/$user/.xinitrc
werde ich das Prinzip erklären versuchen.

Im Verzeichnis /home/$user habe ich mehrere Konfigurationsdateien.
Ich erzeuge mit
#mkdir /home/$user/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 /home/$user/.xinitrc
dem RCS.
Mit dem Parameter -u sorge ich dafür,
dass eine editierbare Kopie im Originial-Verzeichnis 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 /home/$user/.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 /home/$user/.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
#rlog /home/$user/.xinitrc
mir alle Kommentare samt Revisionsnummern an.

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

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

RCS-Variablen:
$Id$ Filename, Revisionsnummer, Datum, Zeit, Author, Status und letzter Revisor
$Log$ gleich wie $Id$, aber Pfad statt Filename
$Header$ Log wird direkt ins File geschrieben

Diese Variablen kann ich in jede Datei, die ich dem RCS übergebe, schreiben.
So zeigt ein
$Id$
allein auf der ersten Zeile einer Datei mir
Filename, Revisionsnummer, Datum, Zeit, Author, Status und letzter Revisor an.

Wer schon immer ein Tool zur (halb-)automatischen Dokumentation gesucht hat,
könnte hier fündig werden. Man muss es nur anwenden und nicht per
:wq!
"unterwandern" ;-)

Hoffe Das Hilft.

Gruss,
lars.
 
Zuletzt bearbeitet:
Ich bin gerade drüber gestolpert. =) Fein, fein, genau was ich zum Thema RCS gesucht habe.
 
Zurück
Oben