Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Zusammenspiel mit make Versionsverwaltung UNIX als CVS Server »

Unterabschnitte
  • Umgebungsvariable CVSROOT
  • Anlegen eines Repositories
  • Dateien aus dem Repository holen
  • Änderungen im Repository abstellen
  • Neue Dateien hinzufügen
  • Dateien aus dem Repository entfernen
  • Rückgriff auf alte Versionen
  • Releases

CVS (Concurrent Versions System)

CVS (Concurrent Versions System) dient dazu, bei der Softwareentwicklung die Fortentwicklung der Projekte zu speichern. Es ermöglicht einerseits den Zugriff auf ältere Versionen und andererseits den unproblematischen Zugriff durch mehrere Programmierer.

Während RCS (Revision Control System) und SCCS nur einzelne Dateien kontrollieren, arbeitet CVS projektorientiert. Es wird pro Projekt ein Repository angelegt, das mehrere Module (Verzeichnisse) und darunter wieder mehrere Dateien aufnehmen kann. Auch wenn es möglich ist, mehrere Projekte in einem einzigen Repository als Module abzulegen, wird dies hier nicht näher betrachtet. Die minimale Ersparnis steht in keinem Verhältnis zum entstehenden Durcheinander und dem Verlust an Flexibilität.

CVS kann auch als echte Client-Server-Applikation installiert werden. Das hat mehrere Vorteile. Damit ist die Versionskontrolle unabhängig von den Fähigkeiten des Netzwerkdateisystems. Darüber hinaus eignet sich CVS auf diese Weise sogar zum Betrieb über das Internet.

Umgebungsvariable CVSROOT

Das Repository ist der Ort, wo CVS die Sourcen und ihre Entwicklung zentral abspeichert. Hier hat kein Entwickler etwas zu suchen. Um die Sourcen weiter zu bearbeiten, legt sich jeder Entwickler an einer beliebigen anderen Stelle ein Arbeitsverzeichnis an und arbeitet dort.

Der Ort des Repository wird in der Environment-Variablen CVSROOT festgehalten. Unter UNIX kann diese in der /etc/profile oder in den jeweiligen lokalen rc-Dateien, beispielsweise .bashrc definiert werden.

export CVSROOT=/home/cvs

Anlegen eines Repositories

Das Verzeichnis, auf das CVSROOT zeigt, muss angelegt werden. Anschließend wird mit dem Befehl cvs init das Repository angelegt. Damit sind die internen Verwaltungsdateien erzeugt. Noch gibt es aber keinen Inhalt. Ein Modul muss aber in jedem Fall eingetragen werden, da ansonsten keine Arbeitsumgebung aus dem Repository generiert werden kann.

Das Eintragen eines Moduls wird durch den Befehl cvs import erreicht. Bei kleineren Projekten ist es naheliegend, ein leeres Basisverzeichnis anzulegen. Besser ist eine thematische Untergliederung in Module bzw. Verzeichnisse.

export CVSROOT=/home/cvs
mkdir $CVSROOT
cvs init
mkdir worksrc
cd worksrc
cvs import -m "Basisverzeichnis" . V1_0 R1_0

Jetzt existiert ein Repository, aus dem sich jeder Programmierer an anderer Stelle ein Arbeitsverzeichnis erstellen kann. Das eben angelegte Verzeichnis worksrc wird nun nicht mehr benötigt und kann entfernt werden. Sie können es natürlich auch als Arbeitsverzeichnis weiterverwenden.

Dateien aus dem Repository holen

Um erstmalig mit den Sourcen arbeiten zu können, müssen Sie mit dem Befehl cvs checkout mindestens ein Arbeitsverzeichnis aus dem Repository erzeugen. Da oben bereits ein leeres Basisverzeichnis angelegt wurde, können Sie an beliebiger Stelle ein Arbeitsverzeichnis anlegen.

cvs checkout .
cvs checkout unix

In der ersten Zeile wird das Hauptverzeichnis eines Projektes mit allen Unterverzeichnissen in das Arbeitsverzeichnis übernommen. Die zweite Zeile holt nur das Modul unix und seine Unterverzeichnisse aus dem Projekt heraus.

Änderungen im Repository abstellen

Während bei anderen Versionssystemen die zu bearbeitenden Dateien reserviert werden müssen, ist dies bei CVS nicht erforderlich. Die geänderten Dateien werden mit dem Befehl cvs commit in das Repository übernommen. Sicherer als das Abstellen einzelner Dateien ist die Verwendung der Modulnamen, da CVS selbst merkt, was sich geändert hat.

Neue Dateien hinzufügen

Neue Dateien werden mit cvs add gefolgt vom Dateinamen im Repository angemeldet. Beim nächsten Einstellen der Änderungen wird diese Datei auch hinzugefügt.

Dateien aus dem Repository entfernen

Wenn eine Datei entfernt werden soll, muss sie zunächst im Arbeitsverzeichnis gelöscht werden. Dann kann sie mit dem Befehl cvs remove mit dem Dateinamen als Parameter aus dem Repository entfernt werden.

rm  oldfile.cpp
cvs remove oldfile.cpp
cvs commit oldfile.cpp

Rückgriff auf alte Versionen

Mit dem Befehl cvs diff mit dem Dateinamen als Parameter können Sie sehen, was sich seit der letzten Version geändert hat. Dieser Befehl vergleicht die aktuell im Arbeitsverzeichnis vorliegende Version mit derjenigen, die im Repository liegt. Haben Sie die aktuelle Version schon abgestellt, können Sie angeben, mit welcher Version Sie die aktuelle vergleichen wollen. Dazu dient der Parameter -r. Schließlich ist es auch möglich, zwei alte Versionen miteinander zu vergleichen, indem Sie den Parameter -r zweimal angeben.

cvs diff myfile.cpp
cvs diff -r 1.1 myfile.cpp
cvs diff -r 1.1 -r 1.2 myfile.cpp

Welche Version einer Datei vorliegen, können Sie sich mit cvs status mit dem Dateiname als Parameter anzeigen lassen.

Releases

Soll eine Release der Software erstellt werden, besteht diese aus den verschiedensten internen Versionen des CVS. Um einen zusammengehörigen fertigen Stand zu markiieren, gibt es den Befehl cvs tag, gefolgt von einem Bezeichner. Damit wird allen aktuell im Arbeitsverzeichnis abgestellten Dateien ein Vermerk angeheftet, anhand dessen Sie später jederzeit wieder diese Version herstellen können. Dazu wird ein cvs checkout Befehl mit der Option -r verwendet.

cvs tag alfa0_8
cvs checkout -r alfa0_8 .



« Zusammenspiel mit make | Versionsverwaltung | UNIX als CVS Server »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de