homeUnix & Internet Unix & Shell-Programmierung: RCS und CVS Prof. Dr. Uwe Schmidt FH Wedel

RCS und CVS

weiter

weiter

Revision Control System

RCS
Werkzeug zur Verwaltung aller Revisionen (Versionen) einer Datei und zum geschützten Ändern von Dateien beim Arbeiten in einer Gruppe.
weiter
ci
checkin

eine Datei mit RCS verwalten
eine neue Revision in einem Archiv speichern

weiter
co
checkout

eine Revision aus einem Archiv auslesen

weiter
co -l
checkout mit lock
 
eine Revision aus einem Archiv zum Verändern auslesen
weiter
Ablauf
weiter
Identifikation
von Revisionen durch RCS-Schlüsselwörter, z.B.
 
$Id$
 
Dateiname, Revisionsnummer, Tag, Zeit, Bearbeiter
 
$Id: rcs.html,v 1.7 2012/04/20 14:01:01 uwe Exp $
 
in Quellen üblicherweise in Kommentar eingeschlossen
in C
 
/* $Log: rcs.html,v $
 */
 
in Shell-Skripts

# $Log: rcs.html,v $

weiter
in C
typische Verwendung
 
static char rcsid[] = "$Id$";
weiter
Änderungsprotokoll
mit Schlüsselwort $Log$

in einem Shell-Skript

 
#!/bin/sh
# <dollar>Id: echo3,v 2.4 1995/01/02 15:21:07 uwe Exp uwe $
 
# <dollar>Log: echo3,v $
#Revision 2.4  1995/01/02  15:21:07  uwe
#alle RCS Macros eingefuegt
#
#Revision 2.3  1995/01/02  15:08:43  uwe
#nichts geaendert
#
#Revision 2.2  1995/01/02  14:57:35  uwe
#Log message eingefügt
#
 
echo "%0 wurde mit %# Parameter(n) aufgerufen."
echo "Die Parameter haben die Werte:"
 
while [ %# -gt 0 ]
do
   echo "   %1" ;shift
done
weiter
Revisionsbaum
weiter
erzeugt mit
 
ci datei        #-- 1.1
 
co -l datei
edit datei
ci datei        #-- 1.2
 
co -l datei
edit datei
ci datei        #-- 1.3
 
co -l datei
edit datei
ci -r2 datei    #-- 2.1
 
co -l datei
edit datei
ci datei        #-- 2.2
weiter
gut
Revisionskette
keine Verzweigungen
weiter
Verzweigungen
im Versionsbaum: Varianten
 
weiter
erzeugt mit
 
# ...
 
co -l datei
edit datei
ci datei                #-- 1.3
 
# ...
 
co -l datei
edit datei
ci datei                #-- 2.2
 
 
#-- 1.3 veraendern 
 
co -l -r1.3 datei
edit datei
ci  -r1.3.1  datei      #-- Zweig 1.3.1
 
#-- 1.3.1 Zweig weiterentwickeln
 
co -l -r1.3.1 datei
edit datei
ci  datei               #-- Zweig 1.3.1
weiter
merke
Revisionsbaum
mit einer Verzweigung
weiter
Deltas
Unterschiede zwischen Revisionen
 
zur Speicherplatzoptimierung
diff
kann Deltas in unterschiedlichem Format berechnen.
diff --rcs file1 file2 berechnet das in Rcs genutzte Format.
Rückwärts-Deltas
Version n-1 wird aus Version n und dem delta n (n-1) berechnet
weiter
Beispiel

Revisionsbaum mit Deltas

 

weiter
Vorwärts-Deltas
Version n wird aus Version n-1 und dem delta n (n-1) berechnet
weiter
Beispiel

Verzweigungen im Versionsbaum

 

weiter
Schreibsperre
locking
merke
problematisch: Konsistenz <==> Parallelarbeit
weiter
Strategien
finde die Person, die die Datei zum Ändern ausgecheckt hat und und bitte diese, die Version zurückzuschreiben.
check die gesperrte Version aus, verändere sie, speichere sie als Zweig zurück und mische die Änderungen später zusammen.
weiter
Beispiel
mkdir RCS
Verzeichnis für die Archive anlegen
ci -i f.c
Archiv für f.c anlegen in der Version 1.1
co f.c
Version aus dem Archiv auslesen
co -l f.c
Version mit Schreibsperre aus dem Archiv auslesen
edit f.c
weiter entwickeln
rcsdiff f.c
Änderungen mit dem Archiv vergleichen
ci f.c
Änderungen speichern
Revisionsnummer erhöhen
ci -l f.c
Änderungen speichern
weiter entwickeln
ci -u f.c
Änderungen speichern
Version behalten
ci -r2 f.c
Versionsnummer erhöhen
co -r2 f.c
letzte Revision der Version 2 auslesen
co -r2.1 f.c
Revision 1 von version 2 auslesen
ci -r1.3.1 f.c
Zweig anlegen für Version 1.3
weiter
CVS
Erweiterung von RCS für Verzeichnisbäume

Letzte Änderung: 20.04.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel