12.1.2 Beispiele f�r CVS-Sitzungen
Das Folgende stellt die Shell-Umgebung f�r den CVS-Repository-Zugriff ein.
12.1.2.1 Anonymes CVS (nur Download)
Entfernter nur lesbarer Zugang:
$ export CVSROOT=:pserver:[email protected]:/cvsroot/qref
$ cvs login
$ cvs -z3 co qref
12.1.2.2 Nutzen eines lokalen CVS-Servers
Lokaler Zugang von der Shell auf der selben Maschine:
$ export CVSROOT=/var/lib/cvs
12.1.2.3 Nutzen eines entfernten CVS-pserver
Entfernter Zugriff ohne SSH (verwenden Sie das RSH Protokoll in
cvs
):
$ export CVSROOT=:pserver:[email protected]:/var/lib/cvs
$ cvs login
Dies ist f�r Lauschangriffe anf�llig.
12.1.2.4 Nutzen von entfernten CVS mittels ssh
Entfernter Zugriff mit SSH:
$ export CVSROOT=:ext:[email protected]:/var/lib/cvs
oder f�r SourceForge:
$ export CVSROOT=:ext:[email protected]:/cvsroot/qref
Man kann auch RSA Authentifizierung nutzen (Mit weniger Passw�rter agieren, Abschnitt
9.5.3), was die Passwortabfrage �berfl�ssig macht.
12.1.2.5 Erzeugen eines neuen CVS-Archivs
F�r
EINTRAG WERT BEDEUTUNG
Quellbaum: ~/Projekt-x gesamter Quellcode
Projektname: Projekt-x der Name dieses Projekts
Vendor Tag: Hauptzweig Wert f�r ganzen Zweig
Release Tag: Release-initial Wert f�r eine spezielle Version
Danach
$ cd ~/Projekt-x # wechseln ins Quellverzeichnis
... Erzeugen des Quellcodes ...
$ cvs import -m "Starte Projekt-x" Projekt-x Hauptzweig Release-initial
$ cd ..; rm -R ~/Projekt-x
12.1.2.6 Arbeiten mit CVS
Um mit Projekt-x unter Verwendung des lokalen CVS-Repositorys zu
arbeiten:
$ cd # ins Arbeitsverzeichnis wechseln
$ cvs co Projekt-x # Quellen aus dem CVS kopieren
$ cd Projekt-x
... �ndern des Codes ...
$ cvs diff -u # wie diff -u Repository/ lokal/
$ cvs up -C modifizierte_Datei # �nderungen r�ckg�ngig machen
$ cvs ci -m "�nderungen" # sichern der lokalen Quellen
$ vi neue_hinzugef�gte_Datei # ... ins CVS
$ cvs add neue_hinzugef�gte_Datei
$ cvs ci -m "Neue Datei neue_hinzugef�gte_Datei"
$ cvs up # verschmelzen mit der letzten
# Version aus dem CVS
... zum Erzeugen aller neu erstellten Unterverzeichnisse im CVS
... ist "cvs up -d -P" stattdessen zu verwenden
... achten Sie auf Ausgaben, die mit "C Dateiname" starten
... nicht modifizierter Code wird nach `.#Dateiname.Version'
verschoben
... suchen Sie nach "<<<<<<<" und ">>>>>>>" in der Datei
$ cvs tag Release-1 # hinzuf�gen des Release Tag
... weitere �nderungen ...
$ cvs tag -d Release-1 # entfernen des Release Tag
$ cvs ci -m "mehr Kommentare"
$ cvs tag Release-1 # erneutes hinzuf�gen des Tag
$ cd # ins Arbeitsverzeichnis wechseln
$ cvs co -r Release-initial -d alt Projekt-x
... Originalversion ins alt Verzeichnis kopieren
$ cd alt
$ cvs tag -b Release-initial-bugfixes # erzeuge Zweig (-b)
... nun kann mit der alten Version gearbeitet werden (Tag=sticky)
$ cvs update -d -P # keine leeren Verz. erstellen
... Quellbaum hat nun den sticky Tag "Release-initial-bugfixes"
... arbeiten in diesem Zweig
$ cvs up -d -P # synchronisieren mit von anderen
# modifizierten Dateien in diesem Zweig
$ cvs ci -m "einchecken in diesen Zweig"
$ cvs update -kk -A -d -P
... entfernen des sticky Tag und Inhalt vergessen
... Aktualisierung des Haupt"trunk" ohne Schl�sselwortersetzung
$ cvs update -kk -d -P -j Release-initial-bugfixes
... vermengen des Release-initial-bugfixes Zweigs in den
... Haupt"trunk" ohne Schl�sselwortersetzung. Beseitigen Sie
... Konflikte mit einem Editor.
$ cvs ci -m "vermenge Release-initial-bugfixes"
$ cd
$ tar -cvzf Projekt-x-alt.tar.gz alt # Archiv erstellen, -j f�r bz2
$ cvs release -d alt # lokale Quellen entfernen (optional)
Nette Optionen zur Erinnerung (als erstes Argument von cvs
nutzen):
-n Probelauf, hat keinen Effekt
-t Anzeigen von Mitteilungen zur CVS-Aktivit�t
12.1.2.7 Exportieren von Dateien aus dem CVS
Um die letzte Version aus dem CVS zu nutzen, verwenden Sie "tomorrow"
(morgen):
$ cvs ex -D tomorrow Modulname
12.1.2.8 Verwalten des CVS
F�gen Sie ein Alias zum Projekt hinzu (lokaler Server):
$ su - admin # ein Mitglied von staff
$ export CVSROOT=/var/lib/cvs
$ cvs co CVSROOT/modules
$ cd CVSROOT
$ echo "px -a Projekt-x" >>modules
$ cvs ci -m "Nun ist px ein Alias f�r Projekt-x"
$ cvs release -d .
$ exit # oder Strg-D um von su zur�ckzukehren
$ cvs co -d Projekt px
... auschecken von Projekt-x (Alias: px) aus dem CVS ins
... Verzeichnis Projekt
$ cd Projekt
... �nderungen vornehmen ...