Hi! Heute mal ein bi�chen allgemeines Geschwafel von mir. ;-)
Ich wurde vor ein paar Tagen darauf aufmerksam gemacht: "Wenn Du vorm Bearbeiten einer Datei schonmal eine Sicherheitskopie angelegt hast, brauchst Du RCS." Jetzt wei� ich also, was das geheimnisvolle Kapitel "RCS" in meinem "Unix in a Nutshell" zu bedeuten hat: RCS ist das "Revision Control System" und archiviert nach �nderungen an Dateien die Differenzen zwischen verschiedenen Versionen. Um RCS zu benutzen, legt man erstmal ein Verzeichnis "RCS" an, und zwar in dem Verzeichnis, in dem sich die zu bearbeitende Datei befindet. Also wenn die Datei "/home/martin/bin/foo.sh" ist, dann "mkdir /home/martin/bin/RCS". Alsdann macht man sich mit zwei Schl�sselfunktionen vertraut: "Check-In" und "Check-Out" in Form der Befehle "ci" und "co". Um eine Datei in RCS aufzunehmen, mu� man zun�chst ein "Check-In" durchf�hren. "ci" hat bl�derweise die Angewohnheit, die eingecheckte Datei verschwinden zu lassen, also verwenden wir eine Option, die uns die Datei erh�lt, aber sie auf r/o setzt: ci -u foo.sh RCS merkt, da� dies eine Datei ist, die neu in RCS aufgenommen werden soll und fragt nach einer Beschreibung der Datei: $ ci -u foo.sh RCS/foo.sh,v <-- foo.sh enter description, terminated with single '.' or end of file: NOTE: This is NOT the log message! >> Ein Testscript f�r RCS >> . initial revision: 1.1 done Jetzt ist die Datei in RCS aufgenommen und auf r/o gesetzt worden. Um sie wieder bearbeiten zu k�nnen, mu� sie nun mit "co" wieder ausgecheckt werden. "ci" mu� dabei die Option "-l" bekommen, damit ein RCS-Lock auf die Datei gesetzt wird und sie beim Auschecken auf r/w gesetzt wird: $ co -l foo.sh RCS/foo.sh,v --> foo.sh revision 1.1 (locked) done Nach dem Editieren kann die Datei dann wieder eingecheckt werden. Da ich aber der einzige bin, der �berhaupt an dieser Datei herumdoktert, will ich mir jedoch die Aktion mit r/o und anschlie�endem Auschecken per "co -l" sparen und fordere gleich beim Einchecken wieder ein RCS-Lock an, indem ich "ci" die Option "-l" mitgebe: $ ci -l foo.sh RCS/foo.sh,v <-- foo.sh new revision: 1.2; previous revision: 1.1 enter log message, terminated with single '.' or end of file: >> Kleine Modifikation vorgenommen >> . done Nach dem Einchecken mit "ci -l" hat die Datei gleich wieder ein RCS-Lock, so da� ich direkt weitereditieren kann. Mit "ci -l" legt man also gewisserma�en einen "Schnappschu�" an, zu dem man sp�ter zur�ckkehren kann. Man kann das "strict locking" auch abschalten, da bin ich mir aber noch nicht ganz �ber Vor- und Nachteile im klaren. Die Differenzen zwischen den verschiedenen Versionen legt RCS in der Datei RCS/foo.sh,v ab, und sie k�nnen Schritt f�r Schritt nachvollzogen werden. Hat man heute z.B. etwas an einem Script gebastelt, kann man sich die letzte Version davon zur�ckholen, indem man sein RCS-Lock auf die Datei zun�chst zur�ckgibt und dann eine �ltere Version davon anfordert, also z.B. eine Version von gestern: $ rcs -u foo.sh RCS file: RCS/foo.sh,v 1.2 unlocked done $ co -l -d'August 19, 23:59' foo.sh RCS/foo.sh,v --> foo.sh revision 1.1 (locked) writable foo.sh exists; remove it? [ny](n): y done H�tte man nur anschauen wollen, was man von der letzten eingecheckten bis zur aktuellen Version, die man z.Z. in Bearbeitung hat, ver�ndert hat, h�tte man das mit rcsdiff tun k�nnen: $ rcsdiff foo.sh =================================================================== RCS file: RCS/foo.sh,v retrieving revision 1.2 diff -r1.2 foo.sh 2c2 < echo "Hallo Welt!" --- > echo "Hallo Welt! Ich liebe euch doch alle!" Oder gezielt zwischen zwei Versionen vergleichen: $ rcsdiff -r1.1 -r1.2 foo.sh =================================================================== RCS file: RCS/foo.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -r1.1 -r1.2 2c2 < echo "Hallo" --- > echo "Hallo Welt!" Falls sich jemand davon an CVS erinnert f�hlt: Richtig. CVS setzt auf RCS auf. F�r ernsthafte Softwareentwicklung d�rfte RCS nicht mehr ganz zeitgem�� sein, aber f�r Scripts und Konfigdateien erscheint es mir sehr praktisch. Unter http://www.cs.purdue.edu/homes/trinkle/RCS/ kann man den Postscript-Source eines Buchs �ber RCS herunterladen, der in s�mtliche Aspekte von RCS einf�hrt. Danke, da� ihr bis hier durchgehalten habt. Ciao, -martin ---------------------------------------------------------------------------- PUG - Penguin User Group Wiesbaden - http://www.pug.org

